字典数组字典
plist文件取值情况
首先
从用读取plist文件
1在定义array 从字典取出字典的key(如果是有序的key 不如字母A-Z)
2如果无序 那么也可以根据字典中 数组类型的value取出里面字典
那么以上2种情况在后面的操作也会不一样
如果是1在去分组个数的时候需要用个nsstirng类型的值去接收数组的值像下面这样
NSString*key =_array[section];
那么这个Key就是字母A-Z
然后再用根字典去遍历key 那么得到的就是数组下面的字典的值NSArray*arr =_dic[key];
最后在分组个数的方法里面直接return 数组的count值就行
然后再cell里面获取值的时候 需要先将存key值的数组通过
NSString*key =_array[indexPath.section];拿到里面的key然后再用根字典去遍历key 那么得到的就是数组下面的字典的值NSArray*arr =_dic[key]; 再将arr中的没一行取出赋值给字典NSDictionary*dic = arr[indexPath.row];最后再将值传给实体类
如果是第二种情况后面是通过语法糖遍历字典下面类型为array的value值_array= dic[@"news"];
在后面设置分组的行数的时候就能够直接返回return_array.count;
而在cell里面赋值的时候也能直接从数组中取出行数赋值给字典 在由字典传给实体对象NSDictionary*dic =_array[indexPath.row];
NewsData*news = [NewsDatanew];
[newssetValuesForKeysWithDictionary:dic];
数组 字典 数组 字典
其实这个和字典数组字典情况相似 只是外层多了个数组
假如外层数组有3个字典 每个字典里面有1个数组 每个数组里面有几条字典保存的值
他取值的时候是先通过数组得到plist文件里面的字典
然后用for in 遍历出字典
for(NSMutableDictionary*dicinarray)
里面要再定义一个字典去遍历数组下 字典的key值
用数组加以保存
[_arrayaddObject:dic[@"name"]];
[_arrayaddObject:dic[@"name"
]];
NSLog(@"%ld",dic.count);
// [_array1 addObject:dic[@"kind"]];
在这里 需要再用一个数组去保存kind的值 再添加进全局数组 不然只会取到单一kind下的值
NSArray*arr = dic[@"kind"];
[_array1addObject:arr];
]
在cell传值的时候 值用数组来接收的 里面有3个相同的kind组 所以要先遍历出数组的每个kind分组的值NSArray*arr =_array1[indexPath.section];
这就是没个kind下的每条数据 然后再遍历每行 用字典来接收NSDictionary*dic = arr[indexPath.row];
最后赋值给实体对象 再传值AppleWatch*app = [AppleWatchnew
];
[app
setValuesForKeysWithDictionary:dic];
cell.appw= app;