gpt4 book ai didi

objective-c - 使用与属性名称不同的键从 NSDictionary 设置对象的属性

转载 作者:行者123 更新时间:2023-12-03 16:52:19 25 4
gpt4 key购买 nike

我需要根据远程服务器通过 JSON 提供的 NSDictionary 设置一堆对象属性。我不想覆盖字典中没有的属性。

由于有很多属性,我有一长串如下所示的语句:

if (dictionary[@"address_1"] != [NSNull null]) 
self.configuration.userAddress1 = dictionary[@"address_1"];

字典中的键与属性的名称不同;有两个不同的系统是分开发展的,我试图让它们一起工作。

也许我已经做了太多的 Ruby 编码,但似乎 Objective-C 中应该有更好的习惯用法来做到这一点。有什么想法吗?

最佳答案

听起来您想要一个简单的 map 解决方案 - 您可以像这样手动滚动

[@{
@"address_1" : @"address1",
@"address_2" : @"address2",
...
} enumerateKeysAndObjectsUsingBlock:^(NSString *remoteKey, NSString *localKey, BOOL *stop) {
id remoteValue = dictionary[remoteKey];

if (![remoteValue isEqual:NSNull.null]) {
[self.configuration setValue:remoteValue forKey:localKey];
}
}];

这应用了一些基本的Null检查逻辑,并允许远程/本地对象具有不同的属性名称

关于objective-c - 使用与属性名称不同的键从 NSDictionary 设置对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27971929/

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