【发布时间】:2025-11-23 15:50:01
【问题描述】:
我需要根据远程服务器通过 JSON 提供的NSDictionary 设置一组对象属性。我不想覆盖字典中没有的属性。
由于属性很多,我有一长串类似这样的语句:
if (dictionary[@"address_1"] != [NSNull null])
self.configuration.userAddress1 = dictionary[@"address_1"];
字典中的键与属性的名称不同;有两个不同的系统是分开成长的,我试图让它们一起工作。
也许我一直在做太多的 Ruby 编码,但似乎在 Objective-C 中应该有一个更好的习惯用法来做这件事。有什么想法吗?
【问题讨论】:
-
我应该提到属性名称和字典键名称并不完全相同:例如 userAddress1 vs address_1。那是因为它们是两个不同的系统,分别长大,试图一起工作。所以我在这个过程中做了一些“翻译”。
-
这是非常重要的一点,因为如果它不是真的,这就像using
setValuesForKeysWithDictionary:一样简单。但是,如果您转换字典键 first.,您仍然可以使用它 -
嗯。现在这是一个想法。
-
感谢所有的想法,但正如一些人在下面指出的那样,治愈可能比疾病更糟糕。我会坚持以上。
标签: objective-c cocoa cocoa-touch nsdictionary