我正在建一本字典。我想在字典中注明一个字段的列表,即id,但没有成功。
这是我的代码:
for (i = 0; i < resultCount; i++) {
item = fetchedObjects[i];
tmpDict[item.tid] = item;
}
NSLog(@"list of items%@",tmpDict);
这列出了所有项目,但我真正想要的只是id列表。
像NSLog(@"list of item ids:%@",tmpDict.tid);
之类的东西,但这会引发错误。
答案 0 :(得分:0)
这是键值编码方法valueForKey:
很有用的极少数情况之一。它返回数组中所有字典的特定键的所有值的数组。
NSLog(@"list of items%@", [fetchedObjects valueForKey:@"tid"]);
可以省略重复循环。
如果要检索密钥的一个值,请使用objectForKey:
这两种方法经常被误认为。
答案 1 :(得分:0)
如果您只想要一组ID,则不需要tmpDict
。
您可以像这样手动执行此操作:
NSMutableArray *ids = [NSMutableArray array];
for (WhatEverClass *item in fetchedObjects) {
[ids addObject:item.tid];
}
NSLog(@"ids = %@", ids);
或者用KVC轻松实现:
NSArray *ids = [fetchedObjects valueForKey:@"tid"];
NSLog(@"ids = %@", ids);