我在这里找到了 excellent solution用于在迁移模型时创建关系。我在模型本身中遇到了一个奇怪的问题。
-(BOOL)createRelationshipsForDestinationInstanceNSManagedObject *)dInstance entityMappingNSEntityMapping *)mapping managerNSMigrationManager *)manager errorNSError *__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
这里有一个奇怪的问题,我期待一个值,但在调试器中它显示的值是 (NsTimeInterval) NaN
而不是实际的值(value)。
但是,当我打印事件描述时,我可以清楚地看到提供的日期值。当我执行 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;
我刚刚找到它。它可以作为键/值对访问。
错误:
[event date_time]
正确:
NSDate *date_time = [event valueForKey"date_time"];
我错了,它会使用模型上的属性。
关于ios - NSManagedObject 的描述显示值,但访问它们显示 NaN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23021817/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) | Powered by Discuz! X3.4 |