Переупорядочение UITableView с NSOrderedSet в CoreData - PullRequest
3 голосов
/ 12 ноября 2011

Есть ли у кого-нибудь пример кода для заказа в UITableView с использованием NSOrderedSet?

Прочитал много статей о переупорядочении, но все еще не понимаю, как это сделать в iOS5.

1 Ответ

5 голосов
/ 26 января 2012

Привет, я реализовал это так.«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];
 }
...