NSManagedObject的描述显示值,但访问它们显示NaN?

我在这里发现了一个在迁移模型时创build关系的优秀解决scheme 。 我在模型中遇到了一个奇怪的问题。

-(BOOL)createRelationshipsForDestinationInstance:(NSManagedObject *)dInstance entityMapping:(NSEntityMapping *)mapping manager:(NSMigrationManager *)manager error:(NSError *__autoreleasing *)error { NSError *superError = nil; BOOL ismappingSuccess = [super createRelationshipsForDestinationInstance:dInstance entityMapping:mapping manager:manager error:&superError]; if (ismappingSuccess && [dInstance.entity.name isEqualToString:@"FTEvent"]){ FTEvent *event = (FTEvent*)dInstance; NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate:event.date_time]; ... 

这里有一个奇怪的问题event.date_time我期待一个值,但在debugging器它显示的值(NsTimeInterval) NaN而不是实际值。

但是,当我打印事件的描述,我可以清楚地看到提供的date值。 当我做event.date_time时,这怎么可能显示NaN

 Printing description of event: <NSManagedObject: 0xbbb9b80> (entity: FTEvent; id: 0xbbbab90 <x-coredata://069BC324-2002-4DBA-879A-DC085C645903/FTEvent/p1> ; data: { "date_time" = "2014-04-10 23:00:00 +0000"; "is_deleted" = 0; key = "4F6646FF-4110-427F-B2FD-3CFCAF777793"; notes = Fdsfdsfd; rating = 1; record = nil; timestamp = "2045-04-11 01:19:06 +0000"; }) 

FTEvent:

 @class FTRecord; @interface FTEvent : NSManagedObject { BOOL is_edited; } @property (nonatomic) NSTimeInterval date_time; @property (nonatomic) BOOL is_deleted; @property (nonatomic, retain) NSString * key; @property (nonatomic, retain) NSString * notes; @property (nonatomic) int16_t rating; @property (nonatomic) NSTimeInterval timestamp; @property (nonatomic, retain) FTRecord *record; 

我刚刚find它。 它可以作为键/值对访问。

错误:

 [event date_time] 

正确:

 NSDate *date_time = [event valueForKey:@"date_time"]; 

我错误的印象是,它将使用模型上的属性。