2012-09-12 16 views
0

我正在關注Core Data Utility tutorial,我已經實施了custom managed object class。它建立並運行良好,但價值似乎並不正確。我的CDCLI.cdcli文件充滿了這樣的對象:我應該從Apple的Core Data Utility教程中獲得什麼值?

<object type="RUN" id="z114"> 
    <attribute name="processid" type="int64">1334</attribute> 
    <attribute name="date" type="date">369155986.60885798931121826172</attribute> 
</object> 

「date」屬性看起來不像日期。日期和屬性的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]]; 

主要基於以下方法,我期待得到「0」作爲的ProcessID屬性值,我不是。

- (void)setNilValueForKey:(NSString *)key { 

    if ([key isEqualToString:@"processID"]) { 
     self.processID = 0; 
    } else { 
     [super setNilValueForKey:key]; 
    } 
} 

事實上,添加一些的NSLog聲明,表示方法告訴我,它甚至沒有被調用,這我得弄清楚。

有沒有人知道日期和processID屬性是假設看起來像這樣我可以肯定我得到正確的值?

回答

1

日期值對我來說看起來不錯。內部格式是自參考日期(2001年1月1日,格林威治標準時間)以來的秒數。該值約爲11.7年,這似乎是一個合理的日期。

同樣,過程ID 1334似乎是一個適當的PID值。

最後,在你的代碼,你這樣做:

if ([key isEqualToString:@"ProcessID"]) { 

,但您的使用情況,如果屬性名稱似乎不符。日誌顯示processid,您的第一組代碼使用processID,第二組代碼使用ProcessID

+0

哇,謝謝你指出。多麼糟糕的錯誤。 – ele

相關問題