我正在遵循Core Data Utility tutorial,并且已经实现了custom managed object class。它可以构建并正常运行,但值似乎不正确。我的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]];
基于以下方法,我希望收到“ 0”作为processID属性值,而我没有。
- (void)setNilValueForKey:(NSString *)key {
if ([key isEqualToString:@"processID"]) {
self.processID = 0;
} else {
[super setNilValueForKey:key];
}
}
实际上,在该方法中添加一些NSLog语句可以告诉我它甚至没有被调用,我必须弄清楚。
有谁知道date和processID属性应该是什么样的,所以我可以确定得到正确的值吗?
最佳答案
日期值对我来说看起来不错。内部格式是自参考日期(格林尼治标准时间2001年1月1日)以来的秒数。该值约为11.7年,这似乎是一个合理的日期。
同样,进程ID 1334似乎是PID的适当值。
最后,在您的代码中,执行以下操作:
if ([key isEqualToString:@"ProcessID"]) {
但如果属性名称不一致,则使用该属性。日志显示
processid
,第一组代码使用processID
,第二组代码使用ProcessID
。