From the daily archives: 火曜日, 8月 23, 2011

まず、sqlでいうselect文はCoreDataだとNSFetchRequestオブジェクトになります。
しかし、このNSFetchRequestはsqlとは全く違う書き方をしないといけないため、sqlに慣れてしまった人にとってはとても扱いづらく感じてしまいます。
そこで、sqlとの比較を基にNSFetchRequestの対応表を書いてみました。

■sqlとの比較

sql文 NSFetchRequestのメソッド
select setPropertiesToFetch
distinct setReturnsDistinctResults
from setEntity
where setPredicate
order setSortDescriptors
limit fetchLimit
offset fetchOffset
join setRelationshipKeyPathsForPrefetching

■NSFetchRequest特有の項目

  • setResultType

    データを受け取る形式の選択ができる。選択肢は次の4つ。
    NSManagedObjectResultType
    NSManagedObjectIDResultType
    NSDictionaryResultType
    NSCountResultType

  • setFetchBatchSize

    limit,offsetとは別に一度のSQLで取得するオブジェクトの数を設定できる。
    イメージとしてはpage=1,2,3…を順番にとる感じ。

それぞれのメソッドの具体的な使い方は今回はパスします。
しかし、こうみるとCoreDataってメソッド名長いですね。