【黑马程序员】Foundation框架NSDictionary

本文介绍了Foundation框架中的NSDictionary,包括其创建、特点、使用方法和遍历方式。还探讨了NSDictionary的简写形式和文件操作,以及注意事项。此外,详细讲解了可变字典NSMutableDictionary的介绍、常用方法及与NSDictionary的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 

 

一、NSDictionary的介绍及使用 

1、什么是NSDictionary

    NSDictionary翻译过来叫做”字典”。

       日常生活中“字典”的作用:通过一个拼音或者汉字,就能找到对应的详细解释。

       NSDictionary的作用类似:通过一个key(键),就能找到对应的value(值)。

       NSDictionary是不可变的,一旦初始化完毕里面的内容就无法修改。

 

2、NSDictionary的创建

//创建一个字典,并且初始化key和value值
NSDictionary*dict2 = [NSDictionarydictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2",nil];

 

3、快速创建字典

NSDictionary *dict3 = @{@"zs" : @"zhangsan", @"ls" : @"lisi", @"ww" : @"Wangwu"};

4、键值对集合的特点

       1)字典存储的时候,必须是"键值对"的方式来存储(同时键不要重复);

       2)键值对中存储的数据是"无序的";

       3)键值对集合可以根据键快速获取数据。

 

5、NSDictionary基本使用方法

       -(NSUInteger)count; 

返回字典的键值对数目

      -(id)objectForKey:(id)aKey;

根据key取出value

 

6、NSDictionary遍历方法

1快速遍历

//快速创建字典
NSDictionary *dict3 = @{@”zs”:@”zhangsan”,@”ls”:@”lisi”,@”ww”:@”wangwu”};
   //遍历
  for(NSString *keyStr in dict3){
       NSLog(@”%@”,keyStr);
}

2Block遍历

    //快速创建字典
   NSDictionary *dict3 = @{@”zs”:@”zhangsan”,@”ls”:@”lisi”,@”ww”:@”wangwu”};
    //遍历
   [dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { 
}];

 

二、NSDictionary的简写及文件操作 

1、NSDictionary的简写形式

1NSDictionary的创建

//以前
[NSDictionary dictionaryWithObjectsAndKeys:@"Jack", @"name", @"男", @"sex", nil];
//现在
@{@"name": @"Jack", @"sex" : @"男”};

2NSDictionary获取元素

//以前
[dict objectForKey:@"name”];
//现在
dict[@"name”];<span style="font-size:18px;"> </span>

2、NSDictionary文件操作

1写入一个字典数据

//快速创建字典
NSDictionary*dict3 = @{@"zs": @"zhangsan", @"ls": @"lisi", @"ww": @"Wangwu"};
//将字典写入到文件中
[dict3 writeToFile:@"/Users/liwei/Desktop/dict.plist"atomically:YES];

2把多个dict加到array中调用arraywriteToFile方法。

//快速创建字典
NSDictionary*dict2 = @{@"x": @"xyz", @"a": @"abc", @"d": @"def"};
NSDictionary*dict3 = @{@"zs": @"zhangsan", @"ls": @"lisi", @"ww": @"Wangwu"};
NSArray*arr = @[dict2,dict3];
//将数组写入到文件中
[arr writeToFile:@"/Users/liwei/Desktop/dict.plist"atomically:YES];
NSLog(@"写入成功!");

3从文件中读取字典到内存中

       + (id)dictionaryWithContentsOfFile:(NSString *)path;

保存结果是xml文件格式,但苹果官方推荐为plist后缀。

把字典放到NSArray中,调用arraywriteToFile

       + (id)dictionaryWithContentsOfURL:(NSURL *)url;

 

3、NSDictionary使用注意

       字典中的键不要重复。(虽然重复也不报错,会自动取在前面的那个)。

 

三、 NSMutableDictionary介绍和使用 

1、NSMutableDictionarry的介绍

       NSMutableDictionaryNSDictionary的子类,NSDictionary是不可变的,一旦初始化完毕后,它里面的内容就永远是固定的,不能删除里面的元素也不能再往里面添加元素。NSMutableDictionary是可变的,随时可以往里面添加、更改、删除元素

 

2、NSMutableDictionary常用方法

       -(void)setObject:(id)anObject forKey:(id <NSCopying>)aKey;

添加一个键值对(会把aKey之前对应的值给替换掉)

       -(void)removeObjectForKey:(id)aKey;

通过aKey删除对应的value

       -(void)removeAllObjects;

删除所有的键值

 

3、NSMutableDictionary简写形式

//快速创建可变字典
dict.dictionary = @{@"name" : @"bob", @"age" : @"18"};
设置键值对
//以前
[dict setObject:@"Jack" forKey:@"name”];
//现在
dict[@"name"] = @"Jack";

 

4、NSDictionary和NSArray对比

       NSArrayNSDictionary的区别

1> NSArray是有序的,NSDictionary是无序的;

2> NSArray是通过下标访问元素,NSDictionary是通过key访问元素。

       NSArray的用法

1> 创建

@[@"Jack", @"Rose"] (返回是不可变数组)

2> 访问

id d = array[1];

3> 赋值

array[1] = @"jack";

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值