1

这可能是一个长镜头,但我有很多属性的对象。这些对象的值是从数据库请求创建的 NSDictionary 填充的。因此,NSNull这些 NSDictionaries 中可能包含将自动分配给属性的值。我需要属性来自动丢弃不正确类型的值/对象。目前我这样做:

- (void) setViewID:(NSString *)viewID{
    if (!viewID || [viewID isKindOfClass:[NSString class]]) _viewID = viewID;
}

但是当我有 30-50 个属性时,这最终会成为很多额外的代码。有没有办法合成这种行为?似乎这将是一个足够普遍的要求,但除了把它全部写出来之外,我似乎找不到一种方法来做到这一点。

4

1 回答 1

2

为什么不查查NSNull查字典的时间?例如

for (NSString *key in dictionary) {
    id value = [dictionary objectForKey:key];
    if (value == [NSNull null]) {
        value = nil;
    }
    [self setValue:value forKey:key];
}
于 2012-05-31T18:04:43.617 回答