有没有人有使用NSOrderedSet在UITableView中进行排序的示例代码?在CoreData中使用NSOrderedSet重新排序UITableView
已阅读了许多关于重新排序的文章,但仍不明白如何在iOS5中执行此操作。
有没有人有使用NSOrderedSet在UITableView中进行排序的示例代码?在CoreData中使用NSOrderedSet重新排序UITableView
已阅读了许多关于重新排序的文章,但仍不明白如何在iOS5中执行此操作。
嗨,我是这样实现的。 “currentObject”是关系的根对象,“subItems”是由UITableViewController管理的模型中的有序关系的名称。
- (void)moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath
{
NSMutableOrderedSet* orderedSet = [self.currentObject mutableOrderedSetValueForKey:@"subItems"];
NSInteger fromIndex = fromIndexPath.row;
NSInteger toIndex = toIndexPath.row;
// see http://www.wannabegeek.com/?p=74
NSIndexSet *indexes = [NSIndexSet indexSetWithIndex:fromIndex];
if (fromIndex > toIndex) {
// we're moving up
[orderedSet moveObjectsAtIndexes:indexes toIndex:toIndex];
} else {
// we're moving down
[orderedSet moveObjectsAtIndexes:indexes toIndex:toIndex-[indexes count]];
}
[self.dataStore saveObjectContext];
}
嗨@Stephan,我使用FRC如何做到这一点使用FRC – Ranjit
嗨@Ranjit据我所知,一个NSFetchedResultController不能访问NSMutableOrderedSet的任意顺序。我的意思是现在有办法取回它。你可以获取根对象,但我想这不是你想要的。因此,我在使用FRC属性解决方案而不是有序关系的项目中使用。 seconed的缺点是恕我直言iCloud不支持NSMutableOrderedSet。 – Stephan
嗨@Stephan,如果我们使用一个属性来维护项目的顺序,那么假设我有100个项目,并且我删除了任何中间项目,我必须重新计算订单属性值,并且每做一次这样做都会很头疼 – Ranjit
http://stackoverflow.com/questions/2360938/uitableview-core-data-reordering这是非常有用的,但是... – Shmidt