三個問題,但它們都是相關的。如果你喜歡我可以把它們分成三個問題,這樣你可以獲得更多的學分。讓我知道你是否希望我這樣做。保存和刪除NSManagedObject&NSManagedObjectContext
我有下面的代碼,讓我訪問NSManagedObject
self.managedObjectContext = [(STAppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
NSError *error;
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"LetsMeet" inManagedObjectContext:managedObjectContext]];
NSArray *objectArray = [managedObjectContext executeFetchRequest:request error:&error];
if(objectArray.count==0){
letsMeet = (LetsMeet *) [NSEntityDescription insertNewObjectForEntityForName:@"LetsMeet" inManagedObjectContext:managedObjectContext];
} else{
letsMeet = (LetsMeet *)[objectArray objectAtIndex:0];
}
上面的代碼讓我來保存和檢索屬性。即我可以訪問letsMeet.attribute來保存和獲取。
問題1:如何刪除並啓動全新的managedObjectContext。即用戶具有他已經在場景之間填寫的表格。當用戶點擊導航控制器上的下一個按鈕時,所有內容都會從每個場景保存到CoreData。經過幾個屏幕之後,用戶想要取消該表單。在這一點上,我想刪除到目前爲止保存的所有內容。代碼示例請。
問題2:讓我們說用戶打開窗體的結尾並決定保存窗體供以後檢索。如何將整個表單的副本保存爲核心數據中的一個對象。代碼示例請。
問題3:我如何從Core Data稍後檢索保存的對象並顯示所有用戶保存的內容?代碼示例請。
謝謝拉克什。它在這裏遲到了,我會在AM上演這一幕。在繼續構建應用程序時,我將添加更多對象。我會在上午通知你。順便說一句,我還沒有想出如何獲得objectID呢。 – user1107173 2013-02-28 04:59:06
至於#3,我希望在完成時保存對象,並在基於Timestamp的UItableview中將它們拉起來。所以當你說我只有一個對象時,你的意思是managedObjectContext中的一個對象嗎?可能是我混淆了這兩個。當前對象將是用戶將在objectArray [0]上工作的對象。其他對象將是在用戶完成表單時將保存的對象,並顯示爲UItableview中的歷史記錄。我希望我有道理。謝謝。 – user1107173 2013-02-28 05:53:14
您只能通過managedObjectContext訪問核心數據對象。在執行提取請求之後,resultArray [0]將是數組中唯一的對象,並且將是您要提取的對象。根據您的評論而不是formId/objectId,您將使用時間戳執行獲取。按日期設置謂詞看這裏http://stackoverflow.com/questions/1965331/nspredicate-filtering-objects-by-day-of-nsdate-property。 – Rakesh 2013-02-28 11:50:07