【发布时间】:2013-02-06 20:04:28
【问题描述】:
这是我用来创建新对象的代码。问题是,如果我选择不保存新对象,它会创建一个空的 tableview 单元格。我怎样才能防止这种情况发生?
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"Add"]) {
NSLog(@"Setting PersonsTVC as a delegate of PersonDetailTVC");
StepDetailView *personDetailTVC = segue.destinationViewController;
personDetailTVC.delegate = self;
personDetailTVC.title = @"Add New Step";
NSLog(@"Creating a new person and passing it to PersonDetailTVC");
Step *newPerson = [NSEntityDescription insertNewObjectForEntityForName:@"Step"
inManagedObjectContext:self.managedObjectContext];
personDetailTVC.person = newPerson;
}
else {
NSLog(@"Unidentified Segue Attempted!");
}
}
到目前为止我尝试的是在personDetailTVC.person = newPerson;之后插入下面的代码
if (newPerson.name == nil) {
[self.managedObjectContext deleteObject:newPerson];
[self.managedObjectContext save:nil];
[self performFetch];
[self.tableView reloadData];
}
但这不是一个好的解决方案,因为它会使应用程序崩溃,因为 tableview 单元格没有被删除,只有对象会。 我认为我可以做的是,如果对象为空,则自动删除第一个 tableview 单元格,但我还没有找到这样做的方法。
有什么建议吗?
【问题讨论】:
-
抱歉,您能更好地解释一下您的目标吗?我不明白你在这里问什么......谢谢
-
你应该保存它。如果不需要,您可以稍后将其删除。
标签: objective-c uitableview core-data ios6 nsmanagedobjectcontext