sqlとCoreDataのselect文比較

まず、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ってメソッド名長いですね。