下面的代码在表格视图中实现了拖放功能。正如您所看到的,它通过从某个索引处的数组(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];
}
答案 0 :(得分:0)
我通过将订单信息存储在coredata对象中来实现类似的行为。我们称之为position
。
通过这种方式,您可以将所有对象作为NSArray
排序NSSortDescriptor
,其属性为position
。
发生拖放后,请确保更新相应更改项目的排名属性。