黑马程序员----字典、NSDictionary
2014-08-29 14:24
120 查看
------- IOS开发、IOS培训、期待与您交流!
-------
字典
NSDictionary\NSMutableDictionary
* 无序
* 快速创建(不可变):@{key1 : value1, key2 : value2}
* 快速访问元素:字典名[key]
key ----> value
索引 ----> 文字内容
里面存储的东西都是键值对
/*------------------------------创建可变字典----------------------*/
//创建
// 1、键值对分别都用数组存放方式
NSArray *keys =
@[@"name",@"QQ",@"address"];
NSArray *objcets =
@[@"Jack",@"21653462",@"Beijing"];
NSDictionary *dict = [NSDictionary
dictionaryWithObjects:objcets forKeys:keys];
id obj = [dict objectForKey:@"name"];
// id obj = dict[@"name"];
NSLog(@"%@",obj);
//返回的是键值对的个数,这里是 3
NSLog(@"%ld",dict.count);
// 输出所有的key
NSLog(@"%@", dict.allKeys);
//
是以QQ = 21653462;这种形式打印
NSLog(@"%@",dict);
// 2、ObjectsAndKeys同时罗列出来这种方式,注意这种方式返回的类型是不可变的
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
@"jack",@"name",
@"Beijin",@"address",
@"2413241",@"QQ",nil];
// 3、快捷方式,编译器会自动转成上面的方式,注意这种方式返回的类型是不可变的
NSDictionary *dict = @{@"name":
@"jack",
@"address": @"Beijing",
@"QQ": @"2413241",
};
// 添加字典,
// 1、如果Key重复了,会覆盖之前的值;
// 2、一个key只能对应一个object,但是一个object可以对应多个key
NSMutableDictionary *dictionary = [NSMutableDictionary
dictionary];
[dictionary setObject:@"One"
forKey:@"1"];
[dictionary setObject:@"Two"
forKey:@"2"];
[dictionary setObject:@"Three"
forKey:@"3"];
[dictionary setObject:@"Four"
forKey:@"4"];
NSLog(@"dictionary:%@",dictionary);
//删除指定的字典
[dictionary removeObjectForKey:@"3"];
NSLog(@"dictionary:%@",dictionary);
/*------------------------------ 遍历字典
----------------------*/
// 1、利用for循环来遍历字典
// 取出所有的key,虽然存在数组里,但实际还是无序的
NSArray *keys = [dict allKeys];
for (int i =
0; i<dict.count; i++) {
NSString *key = keys[i];
NSString *object = dict[key];
NSLog(@"%@ = %@", key, object);
}
// 2、利用方法来遍历字典,比较好
[dict enumerateKeysAndObjectsUsingBlock:
//
每遍历到一个元素,就会调用一次block
//
并且当前元素和索引位置当做参数传给block
^(id key,
id obj, BOOL *stop) {
NSLog(@"%@ - %@", key, obj);
}];
黑马视屏,汤姆猫里的一段:
//1.获得 tom.plist的全路径
//
如果要访问项目中资源包里面的所有资源,应该用mainBundle
NSBundle *bundle = [NSBundle
mainBundle];
// 获得文件的全路径
NSString *path = [bundle pathForResource:@"tom"
ofType:@"plist"];
//2.根据文件路径加载字典
NSDictionary *dict = [NSDictionary
dictionaryWithContentsOfFile:path];
//NSLog(@"%@",dict);
//3.取出按钮文字
NSString *title = [sender
titleForState:UIControlStateNormal];
int count = [dict[title] intValue];
// 1.加载plist,array中装得都是NSDictionary对象
NSString *path = [[NSBundle
mainBundle] pathForResource:@"shops"
ofType:@"plist"];
// 加载path对应的文件来创建数组
NSArray *array = [NSArray
arrayWithContentsOfFile:path];
将字典导入.plist 文件中存放
- (void)viewDidLoad
{
[super
viewDidLoad];
// Do any additional setup after loading the view.
NSString* plistfile1 = [[NSBundle mainBundle]pathForResource:@Property
List ofType:@plist];
NSMutableDictionary* data = [[NSMutableDictionary alloc]initWithContentsOfFile:plistfile1];
//打印出字典里的数据
NSLog(@%@,data);
[data setObject:@add
some content forKey:@c_key];
//获取应用沙盒的Douch
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES);
NSString* plist1 = [paths objectAtIndex:0];
//获取一个plist文件
NSString* filename = [plist1 stringByAppendingString:@test.plist];
[data writeToFile:filename atomically:YES];
NSMutableDictionary* data1 = [[NSMutableDictionary alloc]initWithContentsOfFile:filename];
//打印出字典里的数据
NSLog(@%@,data1);
//修改一个plist文件的数据
[data1 setObject:@要修改的数值 forKey:@要修改的name];
[data1 writeToFile:filename atomically:YES];
}
-------
字典
NSDictionary\NSMutableDictionary
* 无序
* 快速创建(不可变):@{key1 : value1, key2 : value2}
* 快速访问元素:字典名[key]
key ----> value
索引 ----> 文字内容
里面存储的东西都是键值对
/*------------------------------创建可变字典----------------------*/
//创建
// 1、键值对分别都用数组存放方式
NSArray *keys =
@[@"name",@"QQ",@"address"];
NSArray *objcets =
@[@"Jack",@"21653462",@"Beijing"];
NSDictionary *dict = [NSDictionary
dictionaryWithObjects:objcets forKeys:keys];
id obj = [dict objectForKey:@"name"];
// id obj = dict[@"name"];
NSLog(@"%@",obj);
//返回的是键值对的个数,这里是 3
NSLog(@"%ld",dict.count);
// 输出所有的key
NSLog(@"%@", dict.allKeys);
//
是以QQ = 21653462;这种形式打印
NSLog(@"%@",dict);
// 2、ObjectsAndKeys同时罗列出来这种方式,注意这种方式返回的类型是不可变的
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
@"jack",@"name",
@"Beijin",@"address",
@"2413241",@"QQ",nil];
// 3、快捷方式,编译器会自动转成上面的方式,注意这种方式返回的类型是不可变的
NSDictionary *dict = @{@"name":
@"jack",
@"address": @"Beijing",
@"QQ": @"2413241",
};
// 添加字典,
// 1、如果Key重复了,会覆盖之前的值;
// 2、一个key只能对应一个object,但是一个object可以对应多个key
NSMutableDictionary *dictionary = [NSMutableDictionary
dictionary];
[dictionary setObject:@"One"
forKey:@"1"];
[dictionary setObject:@"Two"
forKey:@"2"];
[dictionary setObject:@"Three"
forKey:@"3"];
[dictionary setObject:@"Four"
forKey:@"4"];
NSLog(@"dictionary:%@",dictionary);
//删除指定的字典
[dictionary removeObjectForKey:@"3"];
NSLog(@"dictionary:%@",dictionary);
/*------------------------------ 遍历字典
----------------------*/
// 1、利用for循环来遍历字典
// 取出所有的key,虽然存在数组里,但实际还是无序的
NSArray *keys = [dict allKeys];
for (int i =
0; i<dict.count; i++) {
NSString *key = keys[i];
NSString *object = dict[key];
NSLog(@"%@ = %@", key, object);
}
// 2、利用方法来遍历字典,比较好
[dict enumerateKeysAndObjectsUsingBlock:
//
每遍历到一个元素,就会调用一次block
//
并且当前元素和索引位置当做参数传给block
^(id key,
id obj, BOOL *stop) {
NSLog(@"%@ - %@", key, obj);
}];
黑马视屏,汤姆猫里的一段:
//1.获得 tom.plist的全路径
//
如果要访问项目中资源包里面的所有资源,应该用mainBundle
NSBundle *bundle = [NSBundle
mainBundle];
// 获得文件的全路径
NSString *path = [bundle pathForResource:@"tom"
ofType:@"plist"];
//2.根据文件路径加载字典
NSDictionary *dict = [NSDictionary
dictionaryWithContentsOfFile:path];
//NSLog(@"%@",dict);
//3.取出按钮文字
NSString *title = [sender
titleForState:UIControlStateNormal];
int count = [dict[title] intValue];
// 1.加载plist,array中装得都是NSDictionary对象
NSString *path = [[NSBundle
mainBundle] pathForResource:@"shops"
ofType:@"plist"];
// 加载path对应的文件来创建数组
NSArray *array = [NSArray
arrayWithContentsOfFile:path];
将字典导入.plist 文件中存放
- (void)viewDidLoad
{
[super
viewDidLoad];
// Do any additional setup after loading the view.
NSString* plistfile1 = [[NSBundle mainBundle]pathForResource:@Property
List ofType:@plist];
NSMutableDictionary* data = [[NSMutableDictionary alloc]initWithContentsOfFile:plistfile1];
//打印出字典里的数据
NSLog(@%@,data);
[data setObject:@add
some content forKey:@c_key];
//获取应用沙盒的Douch
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES);
NSString* plist1 = [paths objectAtIndex:0];
//获取一个plist文件
NSString* filename = [plist1 stringByAppendingString:@test.plist];
[data writeToFile:filename atomically:YES];
NSMutableDictionary* data1 = [[NSMutableDictionary alloc]initWithContentsOfFile:filename];
//打印出字典里的数据
NSLog(@%@,data1);
//修改一个plist文件的数据
[data1 setObject:@要修改的数值 forKey:@要修改的name];
[data1 writeToFile:filename atomically:YES];
}
相关文章推荐
- 黑马程序员---NSDictionary字典
- 【黑马程序员】【Foundation框架】字典NSDictionary和NSMutableDictionary
- 黑马程序员——Objective-C学习之不可变与可变字典(NSDictionary\NSMutableDictionary)
- OC-字典常用操作(NSDictionary、NSMutableDictionary)
- 黑马程序员——Foundation框架入门:NSString,NSArray,NSDictionary和NSURL
- 黑马程序员---Objective-C NSDictionary
- Objective-c的Foundation中常用类4——字典NSDictionary、NSMutableDictionary
- 修正我关于NSDictionary字典存储的那一篇文章
- NSDictionary字典的使用以及注意
- iOS开发--字典(NSDictionary)和JSON字符串(NSString)之间互转
- 黑马程序员--IOS学习笔记(NSDictionary、NSMutableDictionary)
- 黑马程序员——Foundation框架——NSDictionary常用方法
- 黑马程序员——Foundation框架字典、集合类、反射
- 黑马程序员--OC自学笔记---10Foundation、NSString、NSURL、NSRange、NSArray、NSMutableArray、NSDictionary
- oc75--不可变字典NSDictionary
- iOS--NSDictionary字典的初始化增删
- 【iOS开发】字典(NSDictionary)和JSON字符串(NSString)之间互转
- Objective-C------NSDictionary、NSMutableDictionary字典对象用法总结
- 黑马程序员17——OC之Fundation(NSDictionary)
- Object-c学习之路九(字典(NSDictionary&NSMutableDictionary))