1.NSDictionar基本概念
- 什么是NSDictionary
- NSDictionary翻譯過來叫做”字典”
- 日常生活中,“字典”的作用:通過一個拼音或者漢字,就能找到對應的詳細解釋
- NSDictionary的作用類似:通過一個key,就能找到對應的value
- NSDictionary是不可變的, 一旦初始化完畢, 里面的內容就無法修改
2.NSDictionary的創建
+ (instancetype)dictionary; + (instancetype)dictionaryWithObject:(id)object forKey:(id <NSCopying>)key; + (instancetype)dictionaryWithObjectsAndKeys:(id)firstObject, ...; + (id)dictionaryWithContentsOfFile:(NSString *)path; + (id)dictionaryWithContentsOfURL:(NSURL *)url;
- NSDictionary創建簡寫
以前
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"lnj", @"name", @"12345678", @"phone", @"天朝", @"address", nil];
現在
NSDictionary *dict = @{@"name":@"lnj", @"phone":@"12345678", @"address":@"天朝"};
- NSDictionary獲取元素簡寫
以前
[dict objectForKey:@"name”];
現在
dict[@"name”];
- 鍵值對集合的特點
- 字典存儲的時候,必須是"鍵值對"的方式來存儲(同時鍵不要重復)
- 鍵值對中存儲的數據是"無序的".
- 鍵值對集合可以根據鍵, 快速獲取數據.
3.NSDictionary的遍歷
-
- (NSUInteger)count;
- 返回字典的鍵值對數目
-
- (id)objectForKey:(id)aKey;
- 根據key取出value
- 快速遍歷
NSDictionary *dict = @{@"name":@"lnj", @"phone":@"12345678", @"address":@"天朝"}; for (NSString *key in dict) { NSLog(@"key = %@, value = %@", key, dict[key]); }
- Block遍歷
[dict enumerateKeysAndObjectsUsingBlock:^(NSString *key, NSString *obj, BOOL *stop) { NSLog(@"key = %@, value = %@", key, obj); }];
4.NSDictionary文件操作
-
將字典寫入文件中
- - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;
- - (BOOL)writeToURL:(NSURL *)url atomically:(BOOL)atomically;
- 存結果是xml文件格式,但蘋果官方推薦為plist后綴。
-
示例
NSDictionary *dict = @{@"name":@"lnj", @"phone":@"12345678", @"address":@"天朝"}; BOOL flag = [dict writeToFile:@"/Users/LNJ/Desktop/dict.plist" atomically:YES]; NSLog(@"flag = %i", flag);
- 從文件中讀取字典
NSDictionary *newDict = [NSDictionary dictionaryWithContentsOfFile:@"/Users/LNJ/Desktop/dict.plist"]; NSLog(@"newDict = %@", newDict);