Core Data Utilityチュートリアルに従っており、カスタム管理対象オブジェクトクラスを実装しました。ビルドと実行は正常ですが、値が正しくないようです。私のCDCLI.cdcliファイルは次のようなオブジェクトでいっぱいです:
<object type="RUN" id="z114">
<attribute name="processid" type="int64">1334</attribute>
<attribute name="date" type="date">369155986.60885798931121826172</attribute>
</object>
その「日付」属性は日付のようには見えません。日付とprocessID属性は次のように設定されています。
// Attribute: Date
NSAttributeDescription *dateAttribute = [[NSAttributeDescription alloc] init];
[dateAttribute setName:@"date"];
[dateAttribute setAttributeType:NSDateAttributeType];
[dateAttribute setOptional:NO];
// Attribute: Process ID
NSAttributeDescription *idAttribute = [[NSAttributeDescription alloc] init];
[idAttribute setName:@"processID"];
[idAttribute setAttributeType:NSInteger64AttributeType];
[idAttribute setOptional:NO];
[idAttribute setDefaultValue:[NSNumber numberWithInteger:-1]];
次の方法に基づいて、processID属性値として「0」を受け取ることを期待していましたが、そうではありません。
- (void)setNilValueForKey:(NSString *)key {
if ([key isEqualToString:@"processID"]) {
self.processID = 0;
} else {
[super setNilValueForKey:key];
}
}
実際、そのメソッドにいくつかのNSLogステートメントを追加すると、呼び出されていないことがわかります。これを理解する必要があります。
日付とprocessID属性がどのように見えるかを誰かが知っているので、正しい値を取得していることを確認できますか?