2011-11-23 97 views
0
- (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使用重复使用的单元格,并且信息显示最新的单元格被删除。我已经解决了这个问题。不过谢谢你的保证,它不是上面的代码。

回答

0

鉴于上面的代码,不会发生这种情况。你为什么认为这是发生了什么?添加NSLog语句以输出newPlace之后的输入属性,并在出示navigationController之前验证此属性。我也会在addController做一些日志记录。无论发生什么事,问题可能都在那里。 addControllerplace财产的@property定义是什么?添加更多的代码,我会尽力帮助更多。

相关问题