点击(此处)折叠或打开
-
void dictCreate() {
-
//NSDictionary是不可变的
-
NSDictionary *dict = [NSDictionary dictionaryWithObject:@"v" forKey:@"k"];
-
//最常用的初始化方式
-
dict = [NSDictionary dictionaryWithObjectsAndKeys:
-
@"v1",@"k1",
-
@"v2",@"k2",
-
@"v3",@"k3",
-
nil];
-
NSArray *objs = [NSArray arrayWithObjects:@"v1",@"v2",@"v3",nil];
-
NSArray *keys = [NSArray arrayWithObjects:@"k2",@"k3",@"k4",nil];
-
dict = [NSDictionary dictionaryWithObjects:objs forKeys:keys];
-
-
NSLog(@"%@",dict);
- }
将字典写入文件,从文件读取:
点击(此处)折叠或打开
-
void dicUse(){
-
//NSDictionary是不可变的
-
NSDictionary *dict = [NSDictionary dictionaryWithObject:@"v" forKey:@"k"];
-
//最常用的初始化方式
-
dict = [NSDictionary dictionaryWithObjectsAndKeys:
-
@"v1",@"k0",
-
@"v2",@"k2",
-
@"v3",@"k3",
-
nil];
-
//返回字典键值对
-
NSLog(@"count=%zi",dict.count);
-
-
//dictionary不可变,所以只能取值,不能修改
-
id obj = [dict objectForKey:@"k3"];
-
NSLog(@"obj=%@",obj);
-
NSLog(@"%@",dict);
-
-
//将字典写入文件
-
NSString *path = @"/Users/luteresa/Desktop/dic.txt";
-
//[dict writeToFile:path atomically:YES];
-
dict = [NSDictionary dictionaryWithContentsOfFile:path];
-
NSLog(@"-%@",dict);
- }
获取多个字典值:
点击(此处)折叠或打开
-
void dictUse2(){
-
//NSDictionary是不可变的
-
NSDictionary *dict = [NSDictionary dictionaryWithObject:@"v" forKey:@"k"];
-
//最常用的初始化方式
-
dict = [NSDictionary dictionaryWithObjectsAndKeys:
-
@"v1",@"k0",
-
@"v1",@"k2",
-
@"v3",@"k3",
-
nil];
-
//返回字典键值对
-
NSLog(@"count=%zi",dict.count);
-
-
//返回所有的key
-
NSArray *keys = [dict allKeys];
-
NSLog(@"keys=%@",keys);
-
-
//返回所有的value
-
NSArray *objs = [dict allValues];
-
NSLog(@"%@",objs);
-
keys =[dict allKeysForObject:@"v1"];
- NSLog(@"keys=%@",keys);
-
-
//根据多个key取出对应的多个value
-
//当key找不到value时,用marker代替
-
objs = [dict objectsForKeys: [NSArray arrayWithObjects:@"k1",@"k2",nil] notFoundMarker:@"h"];
-
NSLog(@"%@",objs);
-
- }
遍历字典:
点击(此处)折叠或打开
-
void dicFor(){
-
//NSDictionary是不可变的
-
NSDictionary *dict = [NSDictionary dictionaryWithObject:@"v" forKey:@"k"];
-
//最常用的初始化方式
-
dict = [NSDictionary dictionaryWithObjectsAndKeys:
-
@"v1",@"k0",
-
@"v1",@"k2",
-
@"v3",@"k3",
-
nil];
-
-
for (id key in dict) {
-
id value = [dict objectForKey:key];
-
NSLog(@"%@->%@",key,value);
-
}
- }
用key迭代器遍历字典:
点击(此处)折叠或打开
-
void dicFor2(){
-
//NSDictionary是不可变的
-
NSDictionary *dict = [NSDictionary dictionaryWithObject:@"v" forKey:@"k"];
-
//最常用的初始化方式
-
dict = [NSDictionary dictionaryWithObjectsAndKeys:
-
@"v1",@"k0",
-
@"v1",@"k2",
-
@"v3",@"k3",
-
nil];
-
//key 迭代器
-
NSEnumerator *enumerator = [dict keyEnumerator];
-
id key = nil;
-
while (key = [enumerator nextObject]) {
-
id value = [dict objectForKey:key];
-
NSLog(@"%@->%@",key,value);
-
}
-
//
- }
用block迭代
点击(此处)折叠或打开
-
void dicFor3(){
-
//NSDictionary是不可变的
-
NSDictionary *dict = [NSDictionary dictionaryWithObject:@"v" forKey:@"k"];
-
//最常用的初始化方式
-
dict = [NSDictionary dictionaryWithObjectsAndKeys:
-
@"v1",@"k0",
-
@"v1",@"k2",
-
@"v3",@"k3",
-
nil];
-
[dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
-
NSLog(@"%@=%@",key,obj);
-
}];
-
-
- }
NSMutableDictionary:字典子集,可变
点击(此处)折叠或打开
-
void dicMutUse(){
-
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
-
Student *stu1 = [Student studentWithName:@"name1"];
-
Student *stu2 = [Student studentWithName:@"name2"];
-
-
[dict setObject:stu1 forKey:@"k1"];
-
[dict setObject:stu2 forKey:@"k2"];
-
NSLog(@"retain:%zi",[stu1 retainCount]);
-
-
NSLog(@"%@->%@",@"k1",[[dict objectForKey:@"k1"] name]);
-
//[dict removeAllObjects];
-
//[dict removeObjectForKey:@"k1"];
-
NSLog(@"retain:%zi",[stu1 retainCount]);
-
// NSLog(@"%@",stu1);
-
-
//添加其他字典
-
NSDictionary *other = [NSDictionary dictionaryWithObject:@"name3" forKey:@"k3"];
-
[dict addEntriesFromDictionary:other];
-
NSLog(@"count is %zi",[dict count]);
-
- //NSLog(@"%@->%@",@"k3",[dict objectForKey:@"k3"]);
- }