gpt4 book ai didi

objective-c - setValuesForKeysWithDictionary 可以与嵌套字典一起使用吗

转载 作者:搜寻专家 更新时间:2023-10-30 20:07:35 26 4
gpt4 key购买 nike

所以我有一个 NSDictionary,其中一个键是字典数组。我要映射到的类具有匹配的键名和 setter 。 setValuesForKeysWithDictionary 可以为我填写子词典吗?当我尝试它时,它似乎用指针垃圾或其他东西填充了对象,但我是新手,所以也许我做错了什么。那个函数是这样工作的吗?

最佳答案

我意识到 setValuesForKeysWithDictionary 无法知道用哪种对象填充 NSMutableArray。我最终为数组属性创建了一个自定义 setter ,该 setter 手动循环您传入的数组(NSDictionaries 的)元素,并为每个元素调用 setValuesForKeysWithDictionary。

代码如下:

有一个名为 itemList 的 NSMutableArray 类型的属性,我想用它填充 Item 类型的对象。 setItemList setter 遍历神秘对象数组,将每个 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;
}

关于objective-c - setValuesForKeysWithDictionary 可以与嵌套字典一起使用吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4115793/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com