黑马程序员技术交流社区

标题: 学习笔记————NSDictionary的使用 [打印本页]

作者: 用晦而明    时间: 2015-8-21 13:23
标题: 学习笔记————NSDictionary的使用
NSDictionary的创建
+(instancetype)dictionary
+(instancetype)dictionaryWithObject:(id)object forKey:(id<NSCopying>) key;//objectForKey根据键取值
+(instancetype)dictionaryWithObjectsAndKeys:(id)firstObject,...;
一组键值对
NSDictionary *dict2=[NSDictionary dictionaryWithObject:@"张三" forKey:@"zs");


多组键值对
NSDictionary *dict2=[NSDictionary dictionaryWithObjectsAndKeys:@"张三",@"zs",@"value2",@"k2",nil);


输出 zs=zhangsan


字典的key和value都必须是对象


快速创建一个字典


@{,key值:value值,};


NSDictionary *dict4=@{@"zs":@"zhangsan ",@"ls":@"lisi"};


特点
1. key值不能重复
2.键值对存储的数据是无序的
3.键值对集合可以根据键快速取数据




-(NSUInteger)count;返回字典的键值对数目
-(id)objectForKey:(id)aKey;根据key取出value






字典的遍历


for循环遍历字典默认获取的是key值


for(NSString *key in dict4)
{
NSLog(@"%@%@",key,[dect4 objectForKey:key]);
}


key valuestop
dict4 enumrateKeysAndObjectsUsingBlock:^(id key,id obj,BOOL *stop)
{
NSLog(@"%@%@",key,obj);
}






NSDictionary的简写形式
@{};


NSDictionary获取元素


dict[@"name"];



NSDictionary文件操作


将字典写入文件中
-(BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;
-(BOOL)writeToURL:(NSURL *)url atomically:(BOOL)atomically;


NSDictionary *readDict=[NSDictionary dictionaryWithContentsOfFile:@"路径"];




NSArray *lnArr = [NSArray arrayWithObjects:@"dalian ","shenyang",nil];
NSArray *hbArr=[NSArray arrayWithObjects:@"baoding",@"shijiazhuang",nil];


NSDictionary *citys=[NSDictionary dictionaryWithObjectsAndKeys:lnarr,@"ln",hbarr,@"hb",nil];


[citys writeToFile:@"路径/citys.plist" atomically:YES];








NSDictionary *cityDict=[NSDictionary dictionaryWithContentsOfFile:@"路径/citys.plist"];
[citysDict enumerateKeyAndObjectsUsingBlock:^(id key,id obj,BOOL *stop){


for(NSString *str in obj){
NSLog(@"%@",str);
}







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2