我应该从Apple的Core Data Utility教程获得什么价值?

时间:2012-09-12 15:58:15

标签: objective-c ios macos core-data command-line

我正在关注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>

该“日期”属性看起来不像日期。 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语句告诉我它甚至没有被调用,我必须弄清楚。

有没有人知道假设的日期和进程ID属性是什么样的,所以我可以确定我得到了正确的值?

1 个答案:

答案 0 :(得分:1)

日期值对我来说很好看。内部格式是自参考日期(2001年1月1日,GMT)以来的秒数。这个价值大约是11。7年,这似乎是一个合理的日期。

同样,进程ID 1334似乎是PID的适当值。

最后,在您的代码中,您执行此操作:

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

但是如果属性名称似乎不一致则使用。日志显示processid,您的第一组代码使用processID,第二组代码使用ProcessID