NSDictionary基本概念


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”];
  • 鍵值對集合的特點
  1. 字典存儲的時候,必須是"鍵值對"的方式來存儲(同時鍵不要重復)
  2. 鍵值對中存儲的數據是"無序的".
  3. 鍵值對集合可以根據鍵, 快速獲取數據.

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);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM