使用CoreData中的NSOrderedSet重新排序UITableView

时间:2011-11-12 19:56:20

标签: core-data ios5 xcode4.2 uitableview

有没有人有使用NSOrderedSet在UITableView中进行排序的示例代码?

曾阅读过很多关于重新排序的文章,但仍然不明白如何在iOS5中这样做。

1 个答案:

答案 0 :(得分:5)

嗨,我是这样实现的。 “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];
 }