- (void)addPlace {
//set up add controller
PlacesAddViewController *addController = [[PlacesAddViewController alloc] initWithStyle:UITableViewStyleGrouped];
addController.delegate = self;
// create new place and assign it to add controller
Place *newPlace = [NSEntityDescription insertNewObjectForEntityForName:@"Place" inManagedObjectContext:self.managedObjectContext];
addController.place = newPlace;
// set up navigation controller
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:addController];
[self presentModalViewController:navigationController animated:YES];
// release controllers
[navigationController release];
[addController release];
}
方法insertNewObjectForEntityForName正确返回广场的新实例,当我尝试最初加入的地方,但是当我从列表中删除的地方,然后按“+”这种方法又称为这次insertNewObjectForEntityForName返回刚删除的地方。NSEntityDescription insertNewObjectForEntityForName返回NSManagedObject刚刚删除
任何人都可以给我一些想法,发生了什么?我知道这个方法返回一个自动释放对象 - 不知道这与它有什么关系。
更新:我认为这是因为在添加视图控制器显示之前,您可以看到第一行中的表视图控制器顶部插入的新对象。当显示添加视图控制器时,新对象确实是一个新实例。另外,如果我保存这个对象,它会正确地用正确的信息替换表视图控制器中的行。所以也许这与我下面的表格视图有关。啊,我只是想出了答案,并回答了我自己的问题。我的cellForRowAtIndexPath使用重复使用的单元格,并且信息显示最新的单元格被删除。我已经解决了这个问题。不过谢谢你的保证,它不是上面的代码。