次のようなコードスニペットがあります。
[tableView beginUpdates];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationLeft];
[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[array indexOfObject:[array objectAtIndex:indexPath.row]]] withRowAnimation:UITableViewRowAnimationLeft];
[tableView endUpdates];
[tableView reloadData];
ユーザーがアクセサリをクリックすると実行されます。最初の部分はスムーズなアニメーションを提供するためだけにあり、tableViewは数ミリ秒後にリロードされるため、実際には重要ではありませんが、前述したように、アニメーションを提供するためにあります。
選択したオブジェクトを現在のindexPathから同じindexPathの配列の値に移動することになっています。
明らかに、このコードは機能しないので、それを修正するために何ができるか知りたいだけですか?
PS:コンパイル時にも警告が表示されます。通常の「'arrayWithObject:'の引数1を渡すと、キャストなしで整数からポインタが作成されます...」(3行目)
このスニペットで終わりました:
[tableView beginUpdates];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationLeft];
[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:[array indexOfObject:[arraySubFarts objectAtIndex:indexPath.row]] inSection:0]] withRowAnimation:UITableViewRowAnimationFade];
[tableView endUpdates];
[tableView reloadData];