使用@synthesize和值类类型检查

时间:2012-05-31 18:01:16

标签: objective-c properties

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

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

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

1 个答案:

答案 0 :(得分:2)

为什么不在查看字典时检查NSNull? E.g。

for (NSString *key in dictionary) {
    id value = [dictionary objectForKey:key];
    if (value == [NSNull null]) {
        value = nil;
    }
    [self setValue:value forKey:key];
}