字典數(shù)組字典
plist文件取值情況
首先
從用讀取plist文件
1在定義array 從字典取出字典的key(如果是有序的key 不如字母A-Z)
2如果無(wú)序 那么也可以根據(jù)字典中?數(shù)組類(lèi)型的value取出里面字典
那么以上2種情況在后面的操作也會(huì)不一樣
如果是1在去分組個(gè)數(shù)的時(shí)候需要用個(gè)nsstirng類(lèi)型的值去接收數(shù)組的值像下面這樣
NSString*key =_array[section];
那么這個(gè)Key就是字母A-Z
然后再用根字典去遍歷key 那么得到的就是數(shù)組下面的字典的值NSArray*arr =_dic[key];
最后在分組個(gè)數(shù)的方法里面直接return 數(shù)組的count值就行
然后再cell里面獲取值的時(shí)候 需要先將存key值的數(shù)組通過(guò)
NSString*key =_array[indexPath.section];拿到里面的key然后再用根字典去遍歷key 那么得到的就是數(shù)組下面的字典的值NSArray*arr =_dic[key]; 再將arr中的沒(méi)一行取出賦值給字典N(xiāo)SDictionary*dic = arr[indexPath.row];最后再將值傳給實(shí)體類(lèi)
如果是第二種情況后面是通過(guò)語(yǔ)法糖遍歷字典下面類(lèi)型為array的value值_array= dic[@"news"];
在后面設(shè)置分組的行數(shù)的時(shí)候就能夠直接返回return_array.count;
而在cell里面賦值的時(shí)候也能直接從數(shù)組中取出行數(shù)賦值給字典 在由字典傳給實(shí)體對(duì)象NSDictionary*dic =_array[indexPath.row];
NewsData*news = [NewsDatanew];
[newssetValuesForKeysWithDictionary:dic];
數(shù)組 字典 數(shù)組 字典
其實(shí)這個(gè)和字典數(shù)組字典情況相似 只是外層多了個(gè)數(shù)組
假如外層數(shù)組有3個(gè)字典 每個(gè)字典里面有1個(gè)數(shù)組 ?每個(gè)數(shù)組里面有幾條字典保存的值
他取值的時(shí)候是先通過(guò)數(shù)組得到plist文件里面的字典
然后用for?in ?遍歷出字典
for(NSMutableDictionary*dicinarray)
里面要再定義一個(gè)字典去遍歷數(shù)組下 字典的key值
用數(shù)組加以保存
[_arrayaddObject:dic[@"name"]];
[_arrayaddObject:dic[@"name"
]];
NSLog(@"%ld",dic.count);
//??????????? [_array1 addObject:dic[@"kind"]];
在這里 ?需要再用一個(gè)數(shù)組去保存kind的值 再添加進(jìn)全局?jǐn)?shù)組 不然只會(huì)取到單一kind下的值
NSArray*arr = dic[@"kind"];
[_array1addObject:arr];
]
在cell傳值的時(shí)候 值用數(shù)組來(lái)接收的 ?里面有3個(gè)相同的kind組 所以要先遍歷出數(shù)組的每個(gè)kind分組的值NSArray*arr =_array1[indexPath.section];
這就是沒(méi)個(gè)kind下的每條數(shù)據(jù) ?然后再遍歷每行 用字典來(lái)接收NSDictionary*dic = arr[indexPath.row];
最后賦值給實(shí)體對(duì)象 再傳值A(chǔ)ppleWatch*app = [AppleWatchnew
];
[app
setValuesForKeysWithDictionary:dic];
cell.appw= app;