Я пишу приложение для iPhone;Мне нужно сохранить данные в постоянном хранилище, но у меня возникли проблемы ... Я создал объект в xcdatamodel, и у меня нет проблем с получением значения по умолчанию, установленного для моего атрибута.В моем тестировании я перебираю код несколько раз ниже и могу изменить этот атрибут (это целое число), пока приложение активно.Однако, когда я закрываю и снова открываю приложение, мое целое число (myInt) возвращается к значению по умолчанию, когда я ожидал, что оно будет последним значением, до которого я его обновил.Вот что я делаю:
NSManagedObjectContext *managedObjectContext = appDelegate.managedObjectContext;
NSEntityDescription *myTestEntity = [NSEntityDescription
entityForName:@"TestEntity"
inManagedObjectContext:managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity:timeStampEntity];
NSError *error = nil;
NSArray *fetchedObjects = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
if (fetchedObjects == nil) {
// TODO: Handle the error
}
for (id oneObject in fetchedObjects)
{
NSInteger myInt = [[oneObject valueForKey:@"myStoredInt"]intValue];
myInt++;
[oneObject setValue:[NSNumber numberWithInt: myInt] forKey:@"myStoredInt"];
NSError *error = nil;
if (![managedObjectContext save:&error]) {//TODO: Handle error
}
}
[fetchRequest release];
Я надеялся, что строка:
if (![managedObjectContext save:&error])
выполнит работу и сохранит изменения в постоянном хранилище, но это не так!(Наличие этой строки внутри или вне цикла for не меняет результат) Что я делаю не так?
Большое спасибо за помощь!