【发布时间】:2014-07-24 14:14:56
【问题描述】:
我有一个 TableViewController (favTable.m),在 NSFetchedResultsController 的帮助下,它填充了从核心数据模型中提取的数据(1 个实体具有 2 个属性)。我在导航栏中包含了一个删除按钮,单击该按钮时应该删除表格的选定行以及核心数据模型中的相应对象。我将下面的代码用于删除按钮,但它返回错误[favTable delItem]: unrecognized selector sent to instance。我应该解决什么问题?
UIBarButtonItem *delButton = [[UIBarButtonItem alloc] initWithTitle:@"Del"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(delItem)];
- (void)delItem:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
self.managedObjectContext = ((ecoAppDelegate *) [UIApplication sharedApplication].delegate).managedObjectContext;
FavoritesInfo*favoritesInfo = [self.fetchedResultsController objectAtIndexPath:indexPath];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
withRowAnimation:UITableViewRowAnimationFade];
[self.managedObjectContext deleteObject:favoritesInfo];
NSError *error= nil;
if (![self.fetchedResultsController performFetch:&error]) {
// Update to handle the error appropriately.
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
exit(-1); // Fail
}
[self.tableView reloadData];
}
【问题讨论】:
-
你是怎么调用这个方法的?如果这是按钮的直接操作,则它需要是 IBaction 而不是 void 方法。
-
它是一个以编程方式设计的 UIBarButton。 @JayVersluis
-
你方法的签名是:
delItem:cellForRowAtIndexPath:,而不仅仅是delItem。
标签: uitableview uibarbuttonitem delete-row nsfetchedresultscontroller