• 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 = @{@"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);
    
  •