[英]core data delete not work
我使用以下代碼填充UITableView
self.navigationItem.leftBarButtonItem = self.editButtonItem;
test_coredataAppDelegate *appDelegate = (test_coredataAppDelegate *)[[UIApplication sharedApplication] delegate];
self._context = appDelegate.managedObjectContext;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"patients" inManagedObjectContext:_context];
[fetchRequest setEntity:entity];
NSError *error;
self.PatientsList = [_context executeFetchRequest:fetchRequest error:&error];
self.title = @"patients";
[fetchRequest release];
PatientList是NSArray
當我想刪除記錄時
[self._context deleteObject:[_PatientsList objectAtIndex:indexPath.row]];
NSError *error;
if (![_context save:&error]) {
// Handle error
NSLog(@"Unresolved error series %@, %@", error, [error userInfo]);
}
[PatientsList removeObjectAtIndex:indexPath.row] ;
[self.tableView reloadData];
但這沒有任何作用。
如何解決此問題並成功刪除,尤其是當我的模型包含關系時?
在這里,您可以從數據庫中刪除它,但不能從數組中刪除它,因此您需要從數組中刪除或調用數據庫,以便再次使用新的數據庫詳細信息加載文件。
因此,對於第一種方法,將其從數組中刪除使其可變,並使用removeObjectAtIndex
方法刪除對象
或者采用第二種方法,則需要再次從核心數據中獲取數據。
然后通過使用重新加載表
[table reloadData];
在調用deleteObject:
之前和之后,您是否可以發布有關從獲取請求中獲得的結果的更多信息? 您還可以檢查傳遞給某些Core Data函數的NSError對象的userInfo
屬性,因為它通常會在Core Data中提供非常有用的信息。 還要記住,在使用NSManagedObjectContext實例的save:
方法保存數據模型之前,您所做的修改不會“ 一成不變” 。
在您的Core Data模式(.xcdata文件)中定義了Core Data處理已刪除對象關系的方式,您可以在Xcode中對其進行編輯。 您可以在此處將關系的刪除操作設置為“ Deny”,“ Nullify”,“ Cascade”或“ No Action”。 請參閱位於此處的文檔的“關系刪除規則”部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.