拖放核心数据

时间:2014-05-14 14:32:41

标签: ios objective-c

下面的代码在表格视图中实现了拖放功能。正如您所看到的,它通过从某个索引处的数组(dataList)中删除对象然后将其定位到所需的索引来完成重新排序。此代码不使用核心数据。我的问题是,你将如何使用核心数据实现这一目标。例如,您是否会继续使用下面的代码中的数组,然后将数组保存到核心数据,并尝试根据数组中的顺序从核心数据中检索和排序对象。或者您会直接在核心数据存储中重新排序对象吗?如果是后者,怎么样?

#pragma mark Row reordering
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
    return YES;
}

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath 
      toIndexPath:(NSIndexPath *)toIndexPath {
    NSString *item = [[dataList objectAtIndex:fromIndexPath.row] retain];
    [dataList removeObject:item];
    [dataList insertObject:item atIndex:toIndexPath.row];
    [item release];
}

1 个答案:

答案 0 :(得分:0)

我通过将订单信息存储在coredata对象中来实现类似的行为。我们称之为position

通过这种方式,您可以将所有对象作为NSArray排序NSSortDescriptor,其属性为position

发生拖放后,请确保更新相应更改项目的排名属性。