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 に答える