日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

目前最细致清晰的NSDictionary以及NSMutableDictionary用法总结

發布時間:2025/3/21 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 目前最细致清晰的NSDictionary以及NSMutableDictionary用法总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

做過Java語言 或者 C語言 開發的朋友應該很清楚 關鍵字map 吧,它可以將數據以鍵值對兒的形式儲存起來,取值的時候通過KEY就可以直接拿到對應的值,非常方便。在Objective-C語言中 詞典對象就是做這個事情的,不過在同一個詞典對象中可以保存多個不同類型的數據,不像Java與C 只能保存聲明的相同類型的數據,它的關鍵字為NSDictionary與NSMutableDictionary。閱讀過我之前文章的朋友應該從關鍵字的 結構就可以看出這兩個的區別。很明顯前者為不可變詞典,或者為可變詞典。

NSDictionary *dict;

for(NSString * akey in dict)

{

  //........

}很好用

1.創建不可變詞典

[NSDictionary dictionaryWithObjectsAndKeys:..] : 使用鍵值對兒直接創建詞典對象,結尾必需使用nil標志結束

[NSDictionary initWithObjectsAndKeys:..] :使用鍵值對兒初始化詞典對象,結尾必需使用nil標志結束。

[dictionary count]: 得到詞典的長度單位。

[dictionary keyEnumerator]: 將詞典的所有KEY儲存在NSEnumerator中,NSEnumerator很像Java語言 中的迭代器,使用快速枚舉可以遍歷詞典中所有儲存KEY值。

[dictionary? objectEnumerator]: 將詞典的所有value儲存在NSEnumerator中,用法和上面差不多可用來遍歷KEY對應儲存的Value值。

[dictionary objectForKey:key]: 通過傳入KEY對象可以拿到當前KEY對應儲存的值。

#import <UIKit/UIKit.h>
#import "MyClass.h"
int main(int argc, char *argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

//添加我們的測試代碼

NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"雨松MOMO",@"name",@"15810463139",@"number", nil];

//得到詞典的數量
int count = [dictionary count];
NSLog(@"詞典的數量為: %d",count);

//得到詞典中所有KEY值
NSEnumerator * enumeratorKey = [dictionary keyEnumerator];

//快速枚舉遍歷所有KEY的值
for (NSObject *object in enumeratorKey) {
NSLog(@"遍歷KEY的值: %@",object);
}

//得到詞典中所有Value值
NSEnumerator * enumeratorValue = [dictionary objectEnumerator];

//快速枚舉遍歷所有Value的值
for (NSObject *object in enumeratorValue) {
NSLog(@"遍歷Value的值: %@",object);
}

//通過KEY找到value
NSObject *object = [dictionary objectForKey:@"name"];

if (object != nil) {
NSLog(@"通過KEY找到的value是: %@",object);
}



int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}

?

2.創建可變詞典對象

NSMutableDictionary 是NSDictionary的子類,所以繼承了NSDictionary的方法。

[NSMutableDictionary dictionaryWithCapacity:10] : 創建一個可變詞典初始指定它的長度為10.,動態的添加數據如果超過10這個詞典長度會自動增加,所以不用擔心數組越界。推薦用這種方式

[NSMutableDictionary initWithCapacity:10]? :只是初始化一個詞典的長度為10。

[dictionary setObject:@"雨松MOMO" forKey:@"name"] :向可變的詞典動態的添加數據 ,這里的key是name ,值是雨松MOMO如果詞典中存在這個KEY的數據則直接替換這個KEY的值。(易混的地方,慎重!)

[dictionary removeAllObjects..] : 刪除掉詞典中的所有數據。

[dictionary removeObjectForKey..] :刪除掉詞典中指定KEY的數據 。

#import <UIKit/UIKit.h>
#import "MyClass.h"
int main(int argc, char *argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

//添加我們的測試代碼

//創建詞典對象,初始化長度為10
NSMutableDictionary *dictionary = [NSMutableDictionary dictionaryWithCapacity:10];

//向詞典中動態添加數據
[dictionary setObject:@"雨松MOMO" forKey:@"name"];

[dictionary setObject:@"15810463139" forKey:@"number"];


//通過KEY找到value
NSObject *object = [dictionary objectForKey:@"name"];

if (object != nil) {
NSLog(@"通過KEY找到的value是: %@",object);
}



int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}

詞典類的存在就是為了解決在大量數據中查找方便,因為它是通過key直接找到value所以速度很快,避免一個個的遍歷尋找造成的效率低下,善用字典類會幫你的程序提速。

文章出處:http://blog.csdn.net/xys289187120/article/details/682373


from:?http://www.cnblogs.com/wengzilin/archive/2012/03/15/2397712.html

總結

以上是生活随笔為你收集整理的目前最细致清晰的NSDictionary以及NSMutableDictionary用法总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。