CoreDataのソートとsectionNameKeyPathの関係
公開日:
:
最終更新日:2014/05/20
Tips CoreData, NSFetchedResultsController, NSSortDescriptor, sectionNameKeyPath
CoreDataをフェッチするときに、indexPathのsectionにできるsectionNameKeyPathの設定ができますが、これに関する覚書的な話題になります。
sectionNameKeyPathにするプロパティはStringでないといけないようですが(訂正:Stringでなくてもいける模様)、設定しておくとfetchedResultsControllerがsection/row管理が、UITableViewのsection/row管理にマッチして、セクション分けしてもUITableViewの表示が非常にスムーズにできるのが利点です。
このsectionKeyPathをソートする場合は、通常のプロパティと同様にSortDescriptorの配列に入れれば処理をしてくれるのですが、そのときに注意しないといけないのが順番。
sectionKeyPathの項目はNSSortDescriptorのArrayの最初に指定しないと結果がソートされないのです。
作り始めにはグルーピングなしで作ってて、後からsectionNameKeyPathを追加して…とやると罠にハマります(そしてハマりました)。
関連記事
-
-
”No Scheme”になってしまった場合の対応
知人がXcodeで突然「No Scheme」表示になってRunするターゲットとデバイスが選択できない
-
-
UISplitViewControllerの仕切り線の色を設定
UISplitViewControllerで、iPadを横向き(Landscape)にしたときの2つ
-
-
iOS8のシミュレーターでLocalizationのテストをする
iOS8.1のシミュレーターでは、従前できていたシミュレーター内での「設定」(Setting)からの
-
-
StoryboardからPopoverを作っても位置合わせコードは必要
これだけだとわかりづらいんですが。 XcodeのStoryboardから、Segueを"Prese
-
-
Size ClassとUIViewController.view
タイトルの件でちょっとハマったことがある上に、特に日本語情報もStackOverflowからも情報が
-
-
AVAudioPlayerの初回再生遅延
ちょっとした効果音の再生にAVAudioPlayerを使っているのですが、どうも初回の効果音ロードの
-
-
アプリ内で自動スリープの設定を無効化する
「設定」アプリ内で設定したスリープ時間設定を無効にするためのコード。 アプリがバックグラウンドにな
-
-
viewDidLoadとviewDidLayoutSubviewsのタイミング
真実の記事にある「コードでiPhone6を識別する」話とほんのちょっとだけ繋がっている話で、view
-
-
実機テストしたときのデータを取り出す
Xcodeでコンパイルして実機テストしている場合に、テストデータを実機から取り出す方法です。 以下
-
-
UICollectionViewのヘッダとフッタの設定
UICollectionViewで慣れないのがヘッダフッタで、毎度「どうやって設定するんだっけ…」と