2015-12-18 32 views
1

我目前通過更新該記錄的每個鍵值來更新實體的現有記錄。如何替換核心數據實體的現有記錄

if(existingObjects != nil && existingObjects.count > 0){ 
      SomeEntity *anObject = [existingObjects objectAtIndex:0]; 

      anObject.key1 = @"Some value"; 
      anObject.key2 = @"Some value"; 
      anObject.key3 = @"Some value"; 

我的問題:有沒有辦法完全替代/覆蓋核心數據實體的記錄,而不是更新的特定記錄的每個值?

+0

如果你有正確的值對象,包括關係,您可以刪除原件並插入新的。不過,我不確定這是個好主意。 – Avi

回答

0

如果你有實體,以取代與你有同樣的更新更新實體,那麼所有你需要做的就是更換實體和保存的背景下,

if(existingTopics != nil && existingTopics.count > 0){ 
[existingTopics replaceObjectAtIndex:0 withObject:entityUpdated]; 
} 
id delegate = [[UIApplication sharedApplication] delegate]; 

NSManagedObjectContext *context = [delegate managedObjectContext]; 
[context deleteObject:entity]; 
NSError *error; 
if (![context save:&error]) { 
    NSLog(@"Whoops, couldn't save: %@",[error localizedDescription]); 
} 
+0

用'object'替換'entity'。請不要混淆。 – Willeke

+0

歡迎您更新文本而不是downvoting @Willeke –