Эй, ребята, я храню метку времени в своем приложении для iPhone через Core Data, в прошлом я успешно делал это, сохраняя двойное значение в виде типа INT 64 в Core Data. Однако недавно мне пришлось изменить его на экземпляр NSNumber вместо простого двойного типа, и с тех пор я не смог получить базовые данные для хранения и получения одного и того же числового значения (ниже приведены попытки с различными типами числовых атрибутов в Основные данные):
Код, который генерирует этот вывод консоли, следующий:
NSLog(@"VALUE BEING STORED: %@",[NSNumber numberWithDouble:tmeStmp]);
[[CoreDataSingleton sharedManager] setItemInDFMWhilePreservingEntityUniquenessForItem:timeStampAttr withValue:[NSNumber numberWithDouble:tmeStmp]];
[[CoreDataSingleton sharedManager] saveStore];
NSLog(@"VALUE RETRIEVED FROM STORE: %@",[[CoreDataSingleton sharedManager] getTimeStamp]);
Соответствующие части setItemInDFMWhilePreservingEntityUniquenessForItem:withValue:
:
-(void)setItemInDFMWhilePreservingEntityUniquenessForItem:(attribute)attr withValue:(id)value {
//...
} else if (attr == timeStampAttr) {
[dfm setTimeStamp:value];
}
//...
} else if (attr == timeStampAttr) {
[[fetchedObjects objectAtIndex:0] setTimeStamp:value];
}
//...
}
Соответствующие части getTimeStamp
:
-(NSNumber *)getTimeStamp {
//...
NSNumber *returnable = [[[NSNumber alloc] initWithDouble:(NSInteger)[[fetchedObjects objectAtIndex:0] valueForKey:@"timeStamp"]] autorelease];
return returnable;
}
Я думаю, что, скорее всего, я не могу адекватно конвертировать числовые типы, но я часами разбирался с кодом без удачи. Есть идеи, где я иду не так? Спасибо!