Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I finally gave up on FetchController in edit mode since I need to reorder my table cells as well. I'd like to see an example of it working. Instead I kept with having a mutablearray being the current view of the table, and also keeping the CoreData orderItem atrribute consistent. </p> <pre><code>NSUInteger fromRow = [fromIndexPath row]; NSUInteger toRow = [toIndexPath row]; if (fromRow != toRow) { // array up to date id object = [[eventsArray objectAtIndex:fromRow] retain]; [eventsArray removeObjectAtIndex:fromRow]; [eventsArray insertObject:object atIndex:toRow]; [object release]; NSFetchRequest *fetchRequestFrom = [[NSFetchRequest alloc] init]; NSEntityDescription *entityFrom = [NSEntityDescription entityForName:@"Lister" inManagedObjectContext:managedObjectContext]; [fetchRequestFrom setEntity:entityFrom]; NSPredicate *predicate; if (fromRow &lt; toRow) predicate = [NSPredicate predicateWithFormat:@"itemOrder &gt;= %d AND itemOrder &lt;= %d", fromRow, toRow]; else predicate = [NSPredicate predicateWithFormat:@"itemOrder &lt;= %d AND itemOrder &gt;= %d", fromRow, toRow]; [fetchRequestFrom setPredicate:predicate]; NSError *error; NSArray *fetchedObjectsFrom = [managedObjectContext executeFetchRequest:fetchRequestFrom error:&amp;error]; [fetchRequestFrom release]; if (fetchedObjectsFrom != nil) { for ( Lister* lister in fetchedObjectsFrom ) { if ([[lister itemOrder] integerValue] == fromRow) { // the item that moved NSNumber *orderNumber = [[NSNumber alloc] initWithInteger:toRow]; [lister setItemOrder:orderNumber]; [orderNumber release]; } else { NSInteger orderNewInt; if (fromRow &lt; toRow) { orderNewInt = [[lister itemOrder] integerValue] -1; } else { orderNewInt = [[lister itemOrder] integerValue] +1; } NSNumber *orderNumber = [[NSNumber alloc] initWithInteger:orderNewInt]; [lister setItemOrder:orderNumber]; [orderNumber release]; } } NSError *error; if (![managedObjectContext save:&amp;error]) { NSLog(@"Unresolved error %@, %@", error, [error userInfo]); abort(); // Fail } } } </code></pre> <p>If anyone has a solution using fetchController please post it. </p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload