0

我已经经历了几个类似的问题,但可以对此达成明确的观点......

我认为将上下文保存在applicationWillTerminate: 中应该足够了,但是在核心数据暂存器上进行太多更改会增加我的应用程序的内存...?

我应该更频繁地保存它吗..?我知道一遍又一遍地保存上下文会减少设备闪存驱动器的寿命,苹果建议我们应该减少这样做的频率。

是否有任何其他情况下应用程序忘记了核心数据上下文 appart 从它被终止的地方......?

感谢您的输入..

4

2 回答 2

0

您的应用程序的保存行为取决于...取决于应用程序。我的意思是,在基于文档的应用程序中,用户希望在点击 cmd-S 时保存文档。所以你应该这样做。越来越多的用户希望他们使用的应用程序能够自动保存。

从用户的角度来看,保存行为是一种设计选择。用户界面和交互设计决定了应用程序的行为方式。

除了这些考虑之外,当然也不能忽视技术现实。内存使用、崩溃错误和数据丢失、撤消管理、电池消耗,所有这些都会对应用程序行为和最终用户产生影响。我真的不认为 SSD 的预期寿命是您应该考虑的因素。

最后一句话:对于给定的商店,您可以拥有多个对象上下文。您可以有子上下文。因此,您可以保存部分数据而不是完整的变更积压,您可以将某些实体优先于其他实体......许多实现选择和可能的策略,但它们应该由用户界面和交互设计驱动。他们必须。

在对用户有意义时保存。

于 2012-06-22T10:07:59.167 回答
-1

这是一种将数据存储到 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");  
       }  
}
于 2012-06-22T09:45:49.697 回答