所以我有一个NSDictionary其中一个键是一个字典数组。我映射到的类具有匹配的键名和setter。可以setValuesForKeysWithDictionary为我填充子字典吗?当我尝试它时,它似乎是用指针垃圾填充了对象,但我是一个新手,所以也许我做错了什么。这个功能是否像那样工作?可以setValuesForKeysWithDictionary使用嵌套字典
3
A
回答
4
我意识到没有办法让setValuesForKeysWithDictionary知道用NSMutableArray填充什么样的对象。我最终为数组属性创建了一个自定义setter,它可以手动循环传入的数组元素(NSDictionaries),并为每个元素调用setValuesForKeysWithDictionary。
下面的代码:
有一个名为类型的NSMutableArray,我想它填补对象类型的物品的itemList中财产。 setItemList setter循环遍历mystery对象数组,将每个NSDictionary转换为我的Item类型并将它们添加到一个新数组中。欢迎任何关于如何简化代码的意见。
我也想在这里添加一些逻辑来处理数组已经包含Item对象而不是字典的情况。在actionscript中,您可以在尝试投射某些东西以查看它是否工作后检查null,但不确定相应的过程在此处。 [item isMemberOfClass [Item class]]
总是评估为YES,即使item是NSDictionary。我不明白为什么...
- (void) setItemList:(NSMutableArray*)input{
[itemList autorelease];
itemList = [[NSMutableArray alloc] initWithCapacity:input.count];
//loop through the array, creating an Item for for each object in the array
for(int i=0;i<input.count;i++){
Item* item = [Item new];
[item setValuesForKeysWithDictionary:(NSDictionary*)[input objectAtIndex:i]];
[itemList insertObject:item atIndex:i];
}
}
- (NSMutableArray*) itemList{
return itemList;
}
相关问题
- 1. 使用TryGetValue嵌套字典
- 2. 可以在深层嵌套字典上使用TryGetValue吗?
- 3. 嵌套字典
- 4. 嵌套字典
- 5. 嵌套字典
- 6. python字典:嵌套字典
- 7. Python嵌套字典
- 8. C#嵌套字典
- 9. 的嵌套字典
- 10. Python嵌套字典
- 11. 从嵌套字典
- 12. 嵌套字典C#
- 13. R嵌套字典
- 14. 使用嵌套字典的HTTP请求
- 15. 使用python创建嵌套字典
- 16. 使用RestKit嵌套字典0.2.0
- 17. 使用LINQ查询嵌套字典
- 18. 在嵌套字典中使用递归?
- 19. 如何使用的String.Format嵌套字典
- 20. 替代使用嵌套字典的deepcopy?
- 21. 使用C#对嵌套字典排序
- 22. 使用嵌套数组创建字典
- 23. 嵌套数组或嵌套字典?
- 24. 如何使用嵌套值对嵌套字典进行排序?
- 25. 在C#添加值以嵌套字典
- 26. (parse.com)我可以保存并获取嵌套数组和/或嵌套字典吗?
- 27. 格式化字典和嵌套字典
- 28. 比较Python字典和嵌套字典
- 29. 嵌套字典分配错误 - 混淆可变字典
- 30. 转换从嵌套的字典中的值,以字典