新しいビューにプッシュできるように、選択したテーブル行から配列を作成しようとしています。私の問題は、選択されていない行を配列から削除すると、境界を超えたインデックスのエラーがスローされますが、他のアイテムが選択されています。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//listOfItems is a Pre Populated Array for the table
NSString *cellValue = [listOfItems objectAtIndex:indexPath.row];
//the array i want my selected items to be added to
NSArray *array = names;
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
if (cell.accessoryType == UITableViewCellAccessoryNone) {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
[names addObject:cellValue];
NSLog(@"ARRAY: %@", array);
}
else {
cell.accessoryType = UITableViewCellAccessoryNone;
[names removeObjectAtIndex:indexPath.row];
NSLog(@"ARRAY: %@", array);
}
[tableView deselectRowAtIndexPath:indexPath animated:NO];
}
}
適切な値を削除できるように、作成中の配列でインデックス番号を見つけるにはどうすればよいですか? どんな助けでも大歓迎です:-)ありがとう!
-----解決策----- 他の人が疑問に思っている場合に備えて、別の方法もあります。
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
NSString *selected = [listOfItems objectAtIndex:indexPath.row];
if (cell.accessoryType == UITableViewCellAccessoryNone) {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
[names addObject:selected];
NSLog(@"ARRAY ADDED %@", names);
}
else {
cell.accessoryType = UITableViewCellAccessoryNone;
[names removeObject:selected];
NSLog(@"ARRAY DELETED %@", names);
}