我對核心數據的邏輯感到困惑。iOS核心數據 - 爲什麼它有效?
我將核心數據視爲數據庫,將核心數據視爲SQL查詢。
當我試圖與本地存儲的對象核心數據更新一些對象,我發現我可以使功能只需用下面的代碼:
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"Book" inManagedObjectContext:_managedObjectContext]];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"identifier == %@", theBook.identifier];
[request setPredicate:predicate];
NSError *error;
Book *book = [[_managedObjectContext executeFetchRequest:request error:&error] lastObject];
if (error) {
NSLog(@"Error getting book to update: %@", error);
abort();
}
// NSLog(@"%d", book == theBook);
error = nil;
if (![_managedObjectContext save:&error]) {
NSLog(@"Error saving the book: %@", error);
abort();
}
theBook
是我想更新的對象核心數據的對象。
而且我發現日誌消息說,這兩名對象是一樣的...
我拿來的要求,並沒有做任何事情,但它的作品。它爲什麼有效?
我發現它在我僅使用代碼的保存部分時有效。我認爲這是因爲'theBook'也是取回的結果。 – glast 2013-02-26 06:42:12
你的問題根本不清楚。我看不出爲什麼它不起作用。 – 2013-02-26 06:44:34
當我將核心數據作爲數據庫處理時,我認爲我應該(1)從獲取請求中獲取對象並(2)編輯對象的值以及(3)然後保存。但是,當我省略過程(1)和(2)時,它會起作用。我不是本地英文用戶,所以很難解釋我的問題。對不起:) – glast 2013-02-26 06:48:36