Я пишу приложение для 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 не меняет результат) Что я делаю неправильно?
Большое спасибо за Вашу помощь!