Objective-C 語法之詞典對象的那些事兒
做過 Java 語言 或者 C 語言 開發(fā)的朋友應(yīng)該很清楚 關(guān)鍵字 map 吧,它可以將數(shù)據(jù)以鍵值對兒的形式儲存起來,取值的時候通過 KEY 就可以直接拿到對應(yīng)的值,非常方便。在 Objective-C 語言中 詞典對象就是做這個事情的,不過在同一個詞典對象中可以保存多個不同類型的數(shù)據(jù),不像 Java 與 C 只能保存聲明的相同類型的數(shù)據(jù),它的關(guān)鍵字為 NSDictionary 與 NSMutableDictionary 。閱讀過我之前文章的朋友應(yīng)該從關(guān)鍵字的結(jié)構(gòu)就可以看出這兩個的區(qū)別。很明顯前者為不可變詞典,或者為可變詞典。
1. 創(chuàng)建不可變詞典
[NSDictionary dictionaryWithObjectsAndKeys:..] : 使用鍵值對兒直接創(chuàng)建詞典對象,結(jié)尾必需使用 nil 標(biāo)志結(jié)束。
[NSDictionary initWithObjectsAndKeys:..] : 使用鍵值對兒初始化詞典對象,結(jié)尾必需使用 nil 標(biāo)志結(jié)束。
[dictionary count]: 得到詞典的長度單位。
[dictionary keyEnumerator]: 將詞典的所有 KEY 儲存在 NSEnumerator 中, NSEnumerator 很像 Java 語言 中的迭代器,使用快速枚舉可以遍歷詞典中所有儲存 KEY 值。
[dictionary objectEnumerator]: 將詞典的所有 value 儲存在 NSEnumerator 中 , 用法和上面差不多可用來遍歷 KEY 對應(yīng)儲存的 Value 值。
[dictionary objectForKey:key]: 通過傳入 KEY 對象可以拿到當(dāng)前 KEY 對應(yīng)儲存的值。
2. 創(chuàng)建可變詞典對象
NSMutableDictionary 是 NSDictionary 的子類,所以繼承了 NSDictionary 的方法。
[NSMutableDictionary dictionaryWithCapacity:10] : 創(chuàng)建一個可變詞典初始指定它的長度為 10. ,動態(tài)的添加數(shù)據(jù)如果超過 10 這個詞典長度會自動增加,所以不用擔(dān)心數(shù)組越界。
[NSMutableDictionary initWithCapacity:10] : 只是初始化一個詞典的長度為 10 。
[dictionary setObject:@" 雨松 MOMO" forKey:@"name"] : 向可變的詞典動態(tài)的添加數(shù)據(jù) ,這里的 key 是 name 值是雨松 MOMO 。如果詞典中存在這個 KEY 的數(shù)據(jù)則直接替換這個 KEY 的值。
[dictionary removeAllObjects..] : 刪除掉詞典中的所有數(shù)據(jù)。
[dictionary removeObjectForKey..] : 刪除掉詞典中指定 KEY 的數(shù)據(jù) 。
詞典類的存在就是為了解決在大量數(shù)據(jù)中查找方便,因?yàn)樗峭ㄟ^ key 直接找到 value 所以速度很快,避免一個個的遍歷尋找造成的效率低下,善用字典類會幫你的程序提速噢。 哇咔咔~ 晚安各位盆友們~
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
