/ / Sortデータベースオブジェクト - ios、core-data

ソートデータベースオブジェクト - ios、コアデータ

私はUITableView各セルが私のリスト内で並べ替えるが、これらのメニュー項目は配列から来るのではなく、dbオブジェクトからユニークなメニュー項目を表示する

例:

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

}

どのようにメニューアイテムを並べ替えることができますか?それが配列の場合、私はそれをやり遂げることができた。

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

助けてください。前もって感謝します

回答:

回答№1は1

menuCategory.hasMenuItems.allObjects あなたが適切な項目を取得するためにそれを並べ替えることができるように配列です。あなたはそれを毎回ソートするか、コンテンツのソートされたキャッシュを保持することができます。どちらのオプションも理想的ではありません。

実際には、フェッチ要求をソートディスクリプタ。フェッチ要求コントローラによって理想的に管理されます。通常は、「後方に」という関係を使用してこれを行います。したがって、フェッチを作成し、述部を次のように設定します。 XXX = %@XXXは関係名であり、指定されたパラメータは menuCategory.

これは、関係が1であると仮定しています。多くの場合、多くの場合、多くの場合、異なる述語形式が必要になります。