0
我正在寫一個iphone應用程序;我需要將數據保存到持久性存儲,但我遇到問題... 我在xcdatamodel中創建了一個實體,並且我沒有問題獲取爲我的屬性設置的默認值。在我的測試中,我通過下面的代碼幾次,並可以在應用程序處於活動狀態時更改此屬性(它是一個整數)。但是,當我關閉並重新打開應用程序時,我的整數(myInt)返回到默認值,當我預期它是我更新它的最後一個值。 下面是我在做什麼:存儲問題永久存儲iphone
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循環內部或外部有這條線不會改變結果) 我在做什麼錯了?
非常感謝您的幫助!
沙尼,太感謝你了!你是對的 - 在我的應用程序委託中,我每次都啓動對象:[NSEntityDescription insertNewObjectForEntityForName:@「TestEntity」inManagedObjectContext:managedObjectContext];我敢打賭,你可以告訴我是新手。我只想做一次 - 我怎麼知道我是否已經做到了?非常感謝! – san 2011-03-06 08:16:05
嘿。我編輯了我的答案。 – shannoga 2011-03-06 08:54:49
這就是沙尼!它像我想要的那樣工作,非常感謝 – san 2011-03-06 19:26:51