AppleのCoreDataUtilityチュートリアルでは、その効果を実装setNilValueForKey:
してテストすることを推奨しています。
Key-Valueコーディングを使用して、プロセスIDをnilに設定します。ユーティリティをビルドして実行します。繰り返しますが、どうなりますか?そして最後に、setNilValueForKey:メソッドをコメントアウトして、もう一度テストします。
このコードでプロセスIDをnilに設定しようとしました[run setValue:nil forKey:@"processID"];
が、これはを呼び出しませんsetNilValueForKey:
。なぜだめですか?
これが私の実装です。追加したNSLogステートメントは表示されません。
- (void) setNilValueForKey:(NSString*)key {
NSLog(@"setNilValueForKey: %@", key) ;
if ( [key isEqualToString:@"processID"] ) {
[self setValue:@0 forKey:key ] ;
}
else {
[super setNilValueForKey:key] ;
}
}
私は同様のstackoverflowの議論を見つけましたが、誰もこの質問に答えません。