Swift3的Dictionary和OC的NSDictionary關(guān)系

在Foundation框架中提供一種字典集合,它是由“鍵-值”對(duì)構(gòu)成的集合。鍵集合不能重復(fù),值集合沒(méi)有特殊要求。鍵和值集合中的元素可以是任何對(duì)象,但是不能是nil。Foundation框架字典類(lèi)也分為NSDictionary不可變字典和NSMutableDictionary可變字典。

NSDictionary與Dictionary之間的關(guān)系如同NSArray與Array之間的關(guān)系,Swift在 層能夠?qū)⑺鼈冏詣?dòng)地橋接起來(lái),一個(gè)NSDictionary對(duì)象橋接之后的結(jié)果是[NSObject : AnyObject]字典(值為NSObject類(lèi)型,鍵為AnyObject類(lèi)型的Dictionary字典)。

1 | ?import Foundation

2 | ?let keyStr : NSString = "one two three four five"

3 | ?let keys : NSArray = keyStr.components(separatedBy: " ")

4 | ?let valueStr : NSString = "swift Object-C java C PHP"

5 | ?let values : NSArray = valueStr.components(separatedBy: " ")

6 | ?let foundationDict : NSDictionary = NSDictionary(objects:values as [AnyObject], forKeys:keys as! [NSCopying])

7 | ?let swiftDict : Dictionary = foundationDict as Dictionary

8 | ?print("字典:\(swiftDict.description)")

9 | ?let value: AnyObject? = swiftDict["three"]

10 | ?print("threeValue:\(value!)")

11 | ?for (key, value) in swiftDict {

12 | ?????print("key:\(key) - value:\(value)")

13 | ?}

運(yùn)行結(jié)果如下:

字典:[one: swift, five: PHP, three: java, two: Object-C, four: C]

threeValue:java

key:one - value:swift

key:five - value:PHP

key:three - value:java

key:two - value:Object-C

key:four - value:C

上述代碼中,第1行是引入Foundation。第6行代碼聲明并初始化NSDictionary字典,第7行代碼是NSDictionary字典賦值給Dictionary字典,這個(gè)過(guò)程也發(fā)生了類(lèi)型轉(zhuǎn)換,不僅是NSDictionary到Dictionary的轉(zhuǎn)換,而且它們的內(nèi)部元素也發(fā)生了轉(zhuǎn)換。

第10行代碼是從Dictionary字典取three鍵對(duì)應(yīng)的值,它的類(lèi)型是可選的AnyObject類(lèi)型,這是因?yàn)橛锌赡苋〔坏竭@個(gè)值。第11行代碼是遍歷Dictionary字典鍵和值集合。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • //var intArray:Array = [Int]();varintArray = [Int]();prin...
    XLsn0w閱讀 507評(píng)論 0 0
  • 因?yàn)橐Y(jié)局swift3.0中引用snapKit的問(wèn)題,看到一篇介紹Xcode8,swift3變化的文章,覺(jué)得很詳細(xì)...
    uniapp閱讀 4,877評(píng)論 0 12
  • 該文為個(gè)人學(xué)習(xí)筆記,如有錯(cuò)誤,請(qǐng)各位大佬指導(dǎo)~~~ 針對(duì)于一些未具體說(shuō)明知識(shí)點(diǎn),后續(xù)會(huì)進(jìn)行補(bǔ)充。 知識(shí)點(diǎn)可能會(huì)有點(diǎn)...
    半截鉛筆閱讀 286評(píng)論 0 0
  • 文/漂洋過(guò)海的魚(yú) 夜這樣靜 心這樣好 在朗朗煙火中喘息 放慢 放慢 放慢到可以聽(tīng)臨心緒心愿的聲音 那呼呼出來(lái)的風(fēng)啊...
    陽(yáng)光在暗處起舞閱讀 327評(píng)論 0 1
  • 我聽(tīng)見(jiàn)了, 你在哭泣。 那晶瑩的淚水中, 帶著無(wú)奈與苦凄。 你是九大行星中的異類(lèi), 沒(méi)有光芒,更不曾被注意。 你只...
    麻麻麻木木閱讀 562評(píng)論 0 2

友情鏈接更多精彩內(nèi)容