我按照链接 select multiple rows from uitableview and delete
我将删除方法中的代码编写为
(void)deleterows:(id)sender {
NSArray *array=[selectedRows allObjects];
NSLog(@"indexes are::%@",array);
[self.tableView deleteRowsAtIndexPaths:array withRowAnimation:UITableViewRowAnimationTop];
}
但是它给出的错误为Terminating app due to uncaught exception NSInvalidArgumentException
原因:-[__NSCFNumber row]: unrecognized selector sent to instance 0x9161b50
请告诉我哪里弄错了。
答案 0 :(得分:0)
selectedRows
是一组NSNumbers。 deleteRowsAtIndexPaths:withRowAnimation:
需要一组NSIndexPath
个对象。您链接的答案清楚地表明您应该创建这样的数组:
- 在您的deleteRows方法中,遍历selectedRows集,构建一个indexPaths数组,从数据中删除这些行 模型,然后调用(使用您首选的动画类型):
[self.myTableView deleteRowsAtIndexPaths:arrayOfIndexPathsToDelete withRowAnimation:UITableViewRowAnimationTop];
答案 1 :(得分:0)
由于您定位的是> = iOS5,因此您只需使用:
self.tableView.allowsMultipleSelection = YES;
然后
(void)deleterows:(id)sender {
NSArray *array= [self.tableView indexPathsForSelectedRows];
NSLog(@"indexes are::%@",array);
[self.tableView deleteRowsAtIndexPaths:array withRowAnimation:UITableViewRowAnimationTop];
}
根本不使用selectedRows
数组。
如果您只想在编辑模式下进行多项选择,则应设置
self.tableView.allowsMultipleSelection = YES;