spacer
natsu_icon iPhoneアプリ開発に関する内容を中心とした、開発者Natsuの記録。
開発Tipsや読んだ本の紹介などなど。

Calender

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
September 2010

Natsu's note Category


Core Data の最新10件のエントリー
Core Data Overview : 重要なクラス
Core Data Performance : バイナリデータの保存
NSPredicate : テンプレートを利用した生成方法(パフォーマンス改善)
To-many relationshipの個数を条件にNSPredicateを生成する方法
NSFetchedResultsController : sectionNameKeyPath設定時の注意

LINKS
NATSU'S NOTE TOP
PROFILE
CONTACT

twitter.com/natsun_happy
MediaMarker

MoMAstore

ボーズ・モバイルヘッドセット

ウェーブミュージックシステム

ヤマギワ オンラインストア

10.03.15 To-many relationshipの個数を条件にNSPredicateを生成する方法


Core DataでエンティティがTo-many relationshipを持つとき、NSPredicateの条件に、その個数を指定したいことがある。例えば、Entity: DepartmentがTo-many relationship: employeesを持つとして、従業員10人以上の部署のみ抽出など。

そのようなときは、KVC (Key-Value Coding) の@countが使える。

NSPredicateの生成は、以下のようにすればよい。

NSPredicate *pred = [NSPredicate predicateWithFormat:@“employees.@count >= 10”];

これは別にNSPredicateやCore Dataに限った話ではなく、KVCの記述方法なので、KVCであれば何にでも使える。便利! このようにキーパス内で利用できる演算子をコレクション演算子といい、全部で以下のような演算子がある。

@avg
@count
@distinctUnionOfArrays
@distinctUnionOfObjects
@distinctUnionOfSets
@max
@min
@sum
@unionOfArrays
@unionOfObjects
@unionOfSets

参考