NSDictionary常用方法,遍历,读写文件
//1.创建一个空字典
NSDictionary *dic=[NSDictionary dictionary];
//2.创建一个带一个键值对的字典
NSDictionary *dic11=[NSDictionary dictionaryWithObject:@"值1" forKey:@"键1"];
//3.创建一个带多个键值对的字典
NSDictionary *dic111=[NSDictionary dictionaryWithObjectsAndKeys:@"张三",@"zs",@"李四",@"ls", nil];
//4.常用的创建方式
NSDictionary *dict=@{@"zs":@"张三",@"ls":@"李四",@"ww":@"王五",@"zl":@"赵六"};
//5.输出字典里面的键值对个数
NSLog(@"%ld",dict.count);
//直接输出字典 NSLog(@"%@",dict);
//6.遍历字典
//1>不能用for遍历,因为字典是无序的,无法通过索引找到
//2>for in (以key作为检索条件)
for (NSString *key in dict) {
NSLog(@"键:%@,值:%@",key,dict[key]);
}
NSLog(@"-----------------------");
//block逼格方式 enumerateKeysAndObjectsUsingBlock
[dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
NSLog(@"键:%@,值:%@",key ,obj);
//*stop=YES; 只遍历一次
}];
//7.通过Dict进行文件读写
//1>写文件
//1.创建字典数据
NSDictionary *d=@{@"one" : @"元素1",@"two" : @"元素2",@"three" : @"元素3",@"four" : @"元素4",@"five" : @"元素5"};
//2.创建文件路径(.plist文件是xcode文件)
NSString *path=@"/Users/RHP/Desktop/练习/01-OC增强/20141222/09-NSDictionary基本使用/dict.plist";
//3.写入文件
BOOL isok=[d writeToFile:path atomically:YES];
if (isok) {
NSLog(@"写入成功");
}
else
{
NSLog(@"写入失败");
}
//读文件
NSString *path1=@"/Users/RHP/Desktop/练习/01-OC增强/20141222/09-NSDictionary基本使用/dict.plist";
NSDictionary *dic1234=[NSDictionary dictionaryWithContentsOfFile:path1];
if (dic1234!=nil) {
NSLog(@"读取成功");
[dic1234 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
NSLog(@"键:%@ 值:%@",key,obj);
}];
}
else
{
NSLog(@"读取失败");
}
//8.把字典嵌套进数组中进行文件读写
NSDictionary *dicdic1=@{@"one":@"1",@"two":@"2"};
NSDictionary *dicdic2=@{@"three":@"3",@"four":@"4"};
NSDictionary *dicdic3=@{@"five":@"5",@"six":@"6"};
//将字典作为对象放进数组中
NSArray *arr=@[dicdic1,dicdic2,dicdic3];
//路径
NSString *p=@"/Users/RHP/Desktop/练习/01-OC增强/20141222/09-NSDictionary基本使用/dict_array.plist";
//写入
BOOL isok1=[arr writeToFile:p atomically:YES];
if (isok1) {
NSLog(@"写入成功");
}
else
{
NSLog(@"写入失败");
}
//读取
NSString *p1=@"/Users/RHP/Desktop/练习/01-OC增强/20141222/09-NSDictionary基本使用/dict_array.plist";
NSArray *dddd=[NSArray arrayWithContentsOfFile:p1];
if (dddd!=nil) {
NSLog(@"读取成功");
NSLog(@"%@",dddd);
}
else
{
NSLog(@"读取失败");
}