您的位置:首页 > 移动开发 > IOS开发

《慕客网:IOS基础入门之Foundation框架初体验》学习笔记 <五> NSDicionary + NSMutableDictionary

2015-07-22 22:24 555 查看
int main(int argc, const char * argv[]) {
@autoreleasepool {
//字典, 存储的内存不是连续的 用key和value进行对应(键值)
//kvc 键值编码
NSDictionary *dic = [NSDictionary dictionaryWithObject:@"1" forKey:@"a"];
NSLog(@"%@",dic);//以上的方法是不常用的
//注意两个参数是数组
//NSDictionary *dic2 = [NSDictionary dictionaryWithObjects:<#(NSArray *)#> forKeys:<#(NSArray *)#>]
//所以还是要先创建两个数组
NSArray *array1 = [[NSArray alloc] initWithObjects:@"a",@"b",@"c",@"d", nil];
NSArray *array2 = [[NSArray alloc] initWithObjects:@"1",@"2",@"3",@"4", nil];
NSDictionary *dic2 = [[NSDictionary alloc] initWithObjects:array1 forKeys:array2];
NSLog(@"%@",dic2);
//
NSDictionary *dic3 = @{@"m":@"9",@"n":@"8"};
NSLog(@"%@",dic3);
//输出字典的长度
int count = (int)[dic3 count];
NSLog(@"%d",count);
//通过键 获得 值
NSString *str = [dic3 valueForKey:@"m"];//或者[dic3 objectForKey:@"m"]
NSLog(@"%@",str);
//获取所有键值中的键和值
NSArray *allValue = [dic3 allValues];
NSArray *allKey = [dic3 allKeys];
//通过多个键找值,因为是多个,当然返回的是数组
NSArray *array = [dic2 objectsForKeys:[NSArray arrayWithObjects:@"2",@"3",@"9", nil] notFoundMarker:@"not found"];
NSLog(@"%@",array);
//遍历字典,数组通过下标遍历,字典当然通过key来遍历
for (NSString *key in dic2) {
NSLog(@"%@ = %@",key,[dic2 objectForKey:key]);
}
//使用针对字典的枚举器
NSEnumerator *en = [dic2 keyEnumerator];
id key = nil;
while (key = [en nextObject]) {
NSLog(@"key - %@",key);
}
//还有一个block方法,用法都是一样的
/*
[dic2 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {

}];*/
}
return 0;
}


int main(int argc, const char * argv[]) {
@autoreleasepool {
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
//添加键值对,直接添加就可以了
[dict setObject:@"1" forKey:@"a"];
[dict setObject:@"2" forKey:@"b"];
[dict setObject:@"3" forKey:@"c"];
NSLog(@"%@",dict);
//删除键值对
[dict removeObjectForKey:@"a"];
NSLog(@"%@",dict);
//还可以通过传入数组对象,对应删除数组元素对应的所有键
[dict removeObjectsForKeys:[NSArray arrayWithObjects:@"a",@"c", nil]];
NSLog(@"%@",dict);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: