我有一个在表视图中加载的数组,如果用户点击某个单元格,它将更改为UITableViewCellAccessoryCheckmark。 如何检查数组中的哪个对象被检查,并将检查的所有对象添加到另一个数组?
答案 0 :(得分:1)
tableView:didSelectRowAtIndexPath:
方法中的类似内容:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//set checkmark accessory on table cell ...
// get object and add to checkedObjects array
NSInteger index = [indexPath row];
MyObject *object = [myArray objectAtIndex:index];
[checkedObjects addObject:object];
}
答案 1 :(得分:1)
如果您想要一个实时获取被检查对象的函数,请使用以下命令:
- (NSMutableArray*)checkedObjectsInTable:(UITableView*)tableView
{
NSMutableArray *checkedObjects = [[[NSMutableArray alloc] init] autorelease];
for (int i=0; i<tableDataSource.count; i++)
{
if ([tableView cellForRowAtIndexPath:
[NSIndexPath indexPathForRow:i inSection:0]].accessoryType == UITableViewCellAccessoryCheckmark)
{
[checkedObjects addObject:[tableDataSource objectAtIndex:i]];
}
}
return checkedObjects;
}
这将允许您按需获取数据。请注意,它比简单地使用Jasarien的方法效率低得多,但在某些情况下它是更好的解决方案。