저는 coredata를 처음 사용합니다. 내가 가지고 있어요
1. 내가 입력하고 해당 엔터티 coredata에서 만든 데이터를 저장 mainview 컨트롤러.
2. 그 다음에 사용자가 입력 한 데이터를 집합 적으로 표시하는 tableview (totalTableView) 컨트롤러가 있습니다.
3. 현재 하루 만 입력 된 데이터를 보여주는 또 다른 tableview (todaysTableView)가 있습니다.coredata에 저장된 오브젝트를 삭제 한 후에도 이전 tableViewController에있는 오브젝트가 유지됩니다.
모두는 내비게이션 컨트롤러로 연결됩니다. todaysTableView에서 객체를 삭제하면 객체 자체가 사라지고 totalTableView로 되돌아 가면 객체가 그대로 남아 있습니다. 또한 내 mainview 컨트롤러 (홈 화면)로 돌아 오는 길을 탐색 한 다음 내 totalTableView로 이동하면 삭제 된 개체가 없어지고 이제는 지워지고 이제는 완벽 해집니다. 내가 삭제 한 후 즉시 totalTableView로 돌아갈 때 왜 지워지지 않는지. 내 viewcontrollers의
흐름이
mainViewController처럼 -> totalTableView -> todaysTableView
여기의 객체 ID로 개체를 삭제하는 todaysTableView의 m.file 내 코드가
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
NSManagedObjectContext *managedObjectContext = [self managedObjectContext];
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Delete the row from the data source
[managedObjectContext deleteObject:[managedObjectContext objectWithID:moID]];
[managedObjectContext save:nil];
NSLog(@"object id check %@",moID);
NSError *error = nil;
if(![managedObjectContext save:&error])
{
NSLog(@"deleting error");
return;
}
[self.todaysCategory removeObjectAtIndex:indexPath.row];
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:(UITableViewRowAnimationFade)];
[self.tableView endUpdates];
}
누구든지 나를 고칠 수 있다면. 미리 감사드립니다.
테이블 뷰에 NSFetchedResultsController를 사용합니까? - 그렇지 않다면 한번보세요! –
@ MartinR 나는 그것을 볼 것이다. 감사합니다. –
UITableView reloadData. –