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: フェッチの舞台裏