我已經有一個使用核心數據通過MagicalRecord的小應用程序,用於學習如何按類別對活動進行分組,並在分組的tableview中顯示數據。因此,我有兩個實體,其中只有一個在這裏使用。它被稱爲ListActivity,並且有兩個屬性,「name」和「category」,都是字符串。iOS MagicalRecord神祕。爲什麼我的數據在truncateAll後重新啓動時重新出現?
拋開困難我已經理解了MR中提供的各種分組和排序方法的工作原理,我添加了一個「TruncateAll」按鈕來簡單地清除平板,以便重新輸入數據。
下面是該按鈕的IBAction爲方法:
- (IBAction)dumpMemory:(UIButton *)sender
{
[ListActivity MR_truncateAll];
[self refreshData];
}
下面是奇怪的事情:按鈕動作抹的tableview(大概店)乾淨,符合市場預期。但是,如果我通過Xcode中的「停止」按鈕殺死SIM卡,然後重新啓動它,所有數據都將重新出現在表格視圖中。這裏有幾個截圖來說明:
擊中TruncateAll按鈕後:
殺害後,再
輸入數據後重新啓動,數據神祕地重現:
但是,如果我殺死在SIM中的應用:
當重新啓動時,石板是乾淨的:
有人可以用MagicalRecord的經驗告訴我我失蹤了什麼?
謝謝!
編輯:
OK,感謝所有誰回答!大家立即看到我的錯誤。我修改了我的IBAction方法,如下所示:
- (IBAction)dumpMemory:(UIButton *)sender
{
NSManagedObjectContext *localContext = [NSManagedObjectContext MR_contextForCurrentThread];
[ListActivity MR_truncateAllInContext:localContext];
[localContext MR_saveToPersistentStoreAndWait];
[self refreshData];
}
現在事情完美了!
非常感謝!
你什麼時候保存(調用MR_save的一些變化)? – Travis