/ / Sortuj obiekt bazy danych - iOS, dane podstawowe

Sortuj obiekt bazy danych - ios, dane podstawowe

Mam UITableView każda komórka pokazuje unikalny element menu Chcę, aby elementy były sortowane na mojej liście, ale te elementy menu nie pochodzą z tablicy, ale z obiektu db

Przykład:

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

}

Jak mogę sortować pozycje menu? Mógłbym to zrobić, gdyby to była tablica, tj.

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];

Prosimy o pomoc. Z góry dziękuję

Odpowiedzi:

1 dla odpowiedzi № 1

menuCategory.hasMenuItems.allObjects jest tablicą, dzięki czemu można ją posortować, aby uzyskać odpowiedni element. Możesz to posortować za każdym razem lub zachować posortowaną pamięć podręczną zawartości. Żadna z tych opcji nie jest idealna.

Naprawdę chcesz użyć żądania pobierania zdeskryptor sortowania, najlepiej zarządzany przez kontroler żądania pobierania. Zwykle robiłbyś to, używając relacji „wstecz”. Więc tworzysz pobieranie i ustawiasz predykat na XXX = %@, gdzie XXX to nazwa relacji, a podany parametr to menuCategory.

Zakłada się, że relacja wynosi 1: wielu, jeśli jest ich wiele: wielu będzie potrzebować innej formy predykatu.