/ / Triediť databázový objekt - ios, základné dáta

Zoradiť databázový objekt - ios, core-data

Mám UITableView, každá bunka zobrazuje jedinečnú položku ponuky. Chcem, aby sa položky v zozname zoradili, ale tieto položky ponuky nepochádzajú z poľa, ale z objektu db.

Príklad:

cellForRowAtIndexPath{
Menus_Items *menuItem = [menuCategory.hasMenuItems.allObjects objectAtIndex:indexPath.row];
lblMenuItemName.text = menuItem.name;

}

Ako môžem zoradiť položky ponuky? Mohol som to urobiť, keby išlo o pole, t.

NSSortDescriptor *orderSort = [[NSSortDescriptor alloc] initWithKey:@"order" ascending:NO];
// String are alphabetized in ascending order
NSSortDescriptor *strNameSort = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];

// Combine the two
NSArray *sortDescriptors = @[orderSort, strNameSort];

arrCategories = [DatabaseHelper getAllData:@"Menus_cat" offset:0 predicate:[NSPredicate predicateWithFormat:@"ofOutlet == %@",outletsObject] sortDescriptor:nil];

// sortedArrayUsingDescriptor is the method use to sort an array which is having multiple parameters in sort descriptor
arrCategories = [arrCategories sortedArrayUsingDescriptors:sortDescriptors];

Pomoc prosím. Vopred ďakujem

odpovede:

1 pre odpoveď č. 1

menuCategory.hasMenuItems.allObjects je pole, takže ho môžete zoradiť tak, aby ste dostali príslušnú položku. Dalo by sa to usporiadať zakaždým, alebo si ponechať triedenú vyrovnávaciu pamäť obsahu. Ani jedna z týchto možností nie je ideálna.

Naozaj chcete použiť požiadavku na načítanie pomocoudeskriptor triedenia, ideálne spravovaný radičom žiadosti o načítanie. Zvyčajne by ste to robili pomocou vzťahu „dozadu“. Takže vytvoríte načítanie a nastavíte predikát na XXX = %@, kde XXX je názov vzťahu a zadaný parameter je menuCategory.

Toto predpokladá, že vzťah je 1: veľa, ak je veľa: veľa budete potrebovať inú formu predikátu.