0

我有一个表格视图,用户可以在其中按照他希望的顺序移动和重新排列单元格。但是当他多次移动/重新排列单元格时,保存项目的数组会因为项目的顺序而完全混乱,但视觉上一切都很好。我究竟做错了什么?先感谢您...

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath
{

    id object1 = [_items5 objectAtIndex:sourceIndexPath.row];
    id object2 = [_items5 objectAtIndex:destinationIndexPath.row];

    [_items5 replaceObjectAtIndex:sourceIndexPath.row withObject:object2];
    [_items5 replaceObjectAtIndex:destinationIndexPath.row withObject:object1];

其中 _items5 是一个 NSMutableArray 并在 viewDidLoad 中初始化

4

1 回答 1

1

您正在交换两个项目,而不是移动一个移动的项目。你要:

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath {
    id object = [_items5 objectAtIndex:sourceIndexPath.row];
    [_items5 removeObjectAtIndex:sourceIndexPath.row];
    [_items5 insertObject:object atIndex:destinationIndexPath.row];
}

注意:如果使用 MRC,您需要保留object,以便在放回数组之前不会释放它。

于 2013-04-14T18:22:05.403 回答