我已經經歷了幾個類似的問題走了,但能達到這個明確的點...在哪裏保存核心數據上下文...?
我想節省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 –