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