EOIFFetchRecords
2007/03/30 (Fri) 22:07:46 JST
データ行のフェッチ
SQL文の実行後は、 EODatabaseChannel.fetchObject()
によってフェッチしたオブジェクトを1行ずつ取り出します。 以降、 fetchObject()
内の処理になります。
?EODatabaseChannelはSQL文を組み立てますが、そのSQL文を評価するのは?EOAdaptorChannelです。 フェッチしたデータ行は EOAdaptorChannel.fetchRow()
で1行ずつ取り出します。 このとき fetchRow()
が返すのは、素のデータ行です。つまり、 EODatabaseChannel.fetchObject()
は EOAdaptorChannel.fetchRow()
が返すデータ行をオブジェクトに変換して返します。
それでは?EOAdaptorChannelが返すデータ行を見てみましょう。 基本的にオブジェクトを toString()
で表示したものですが、クラス名の表示を簡略化してあります。
{ RATED = "G"; DATE_RELEASED = 1996-01-24 20:00:00 Etc/GMT; STUDIO_ID = 52; TRAILER_NAME = <NSKeyValueCoding$Null>; // null TITLE = "EOF Next Generation"; MOVIE_ID = 205; REVENUE = 600000; POSTER_NAME = <NSKeyValueCoding$Null> CATEGORY = "Surreal"; }
?EOAdaptorChannelが返すオブジェクトは?NSMutableDictionaryのインスタンスです。 単純に列名と値からなる辞書が返されますが、値はこの段階で基本的なデータ型(String, Number, NSData, NSTimestamp)に変換されます。
Inverse Pages: フェッチの舞台裏