我已经经历了几个类似的问题走了,但能达到这个明确的点...在哪里保存核心数据上下文...?
我想节省applicationWillTerminate
背景:应该是足够的,但会使得对核心数据便笺增加太多的变化我的应用程序的记忆......?
我应该多保存一次..?我知道,一遍又一遍地保存上下文会减少设备的闪存驱动器的寿命,并且苹果建议我们不要经常这样做。
是否有任何其他应用程序忘记核心数据上下文appart从哪里终止?...?
感谢您的输入..
我已经经历了几个类似的问题走了,但能达到这个明确的点...在哪里保存核心数据上下文...?
我想节省applicationWillTerminate
背景:应该是足够的,但会使得对核心数据便笺增加太多的变化我的应用程序的记忆......?
我应该多保存一次..?我知道,一遍又一遍地保存上下文会减少设备的闪存驱动器的寿命,并且苹果建议我们不要经常这样做。
是否有任何其他应用程序忘记核心数据上下文appart从哪里终止?...?
感谢您的输入..
应用程序的保存行为取决于应用程序。我的意思是,在基于文档的应用程序中,用户希望文档在命中cmd-S时被保存。所以你应该这样做。越来越多的用户期望他们使用自动保存的应用程序。
保存行为是从用户角度出发的设计选择。用户界面和交互设计决定了应用程序的行为方式。
除了这些考虑,技术现实当然不能忽视。内存使用,崩溃的错误和数据丢失,撤消管理,电池消耗,所有这些都会对应用程序行为和最终用户产生影响。我真的不认为SSD的预期寿命是你应该考虑的因素之一。
最后一句话:对于给定的商店,您可以拥有多个对象上下文。你可以有孩子的比赛。因此,您可以保存部分数据而不是完全变更待办事项,您可以优先考虑某些实体的优先级别......许多实现选择和可能的策略,但它们应该由用户界面和交互设计驱动。他们必须。
保存时对用户有意义。
这是一种方式将数据存储到Coredata。
-(void) setEmailContactsToCoredata:(id)sender
{
NSManagedObjectContext *context=[appDelegate managedObjectContext];
NSManagedObject *newData = [NSEntityDescription insertNewObjectForEntityForName:@"EmailContacts" inManagedObjectContext:context];
[newData setValue:self.emailTextField.text forKey:@"email_ID"];
NSError *error;
if (![context save:&error])
{
NSLog(@"There was an error while inserting Data into coredata");
}
else
{
NSLog(@"Success fully Saved your email id");
}
}
你不明白我的问题..我知道如何保存数据...请仔细阅读。像每次单独添加新电子邮件一样保存它会损坏设备的硬盘驱动器。 –
取决于客户因失败或意外情况而丢失所有数据时会有多愤怒。当您的应用程序被暂停时,您将不会收到终止消息。所以如果它在这个状态下被杀死,poof就会获得所有的数据。除非你的应用程序不支持后台模式,否则终止很少被调用。 – borrrden
所以我应该在applicationWillEnterBackground中保存我的上下文,谢谢你的输入。 –
http://stackoverflow.com/questions/10887437/objective-c-core-data-saving-approach –