在Swift中,使用字符串有可能會(huì)使用Foundation中的NSString和Swift中的String。Swift在底層能夠?qū)tring與NSString無縫地橋接起來,String可調(diào)用NSString的全部API。因?yàn)樵?a target="_blank" rel="nofollow">String中使用NSString,很多String API不具有的功能可以通過調(diào)用NSString API實(shí)現(xiàn), 是有些時(shí)候類型轉(zhuǎn)換是必要的。String是值類型,而NNString是類,也就是引用類型,它們之間該如何轉(zhuǎn)換呢?關(guān)于值類型和引用類型我們會(huì)在第十章類中詳細(xì)講解。這一節(jié)我們來先來學(xué)習(xí)一下它們之間的關(guān)系。
下面我們看一個(gè)使用String和NSString的示例代碼:
1 | ?import Foundation
2 | ?let ?ocStr : NSString = "Swiftos"
3 | ?let swiftStr : String = ocStr as String
4 | ?let ocString2 : NSString = swiftStr
5 | ?let ocStr2 : NSString = "56"
6 | ?let intValue = Int(ocStr2 as String)
7 | ?print(intValue!)
運(yùn)行結(jié)果:56
要想使用NSString,需要引入Foundation或Cocoa。代碼第1行是引入Foundation,第2行代碼聲明并初始化NSString字符串ocStr,第3行代碼是 NSString字符串賦值給String字符串變量swiftStr。在這個(gè)這個(gè)過程中,我們需要進(jìn)行類型轉(zhuǎn)換要使用as運(yùn)算符將NSString強(qiáng)制類型轉(zhuǎn)換為String。即ocStr as String類似地,第 4行代碼是將String字符串賦值給NSString字符串,這個(gè)過程中也發(fā)生了類型轉(zhuǎn)換。但這里我們不需要做任何操作。第 5行代碼聲明并初始化NSString字符串,它是由數(shù)字組成的字符串,這種字符串可以轉(zhuǎn)換為數(shù)字類型。第6行代碼先將NNString類型的ocStr轉(zhuǎn)換為String類型,在轉(zhuǎn)換為Int類型。最后打印出來的intValue的值為56。
上述例子,我們用let用聲明了一個(gè)常量字符串,它對應(yīng)得是Object-C的 NNString。當(dāng)們用var聲明了一個(gè)變量字符串,它對應(yīng)的是Object-C 的 NSMutableString。