ちょっとしたキャッチ 22 に遭遇しました。次のように、FMDB の派手なwithParameterDictionary
方法を使用して、SQLite データベースにデータを挿入しています。
NSDictionary *aircraftDict = [NSDictionary dictionaryWithObjectsAndKeys:
self.aircraftIdTextField.text, @"aircraft_id",
self.makeModelTextField.text, @"make_model",
self.categoryClassTextField.text, @"category_class",
@YES, @"updated_flag",
nil];
NSString *addAircraftQuery = @"INSERT INTO aircrafts (aircraft_id, make_model, category_class, updated_flag) VALUES (:aircraft_id, :make_model, :category_class, :updated_flag)";
[db executeUpdate:addAircraftQuery withParameterDictionary:aircraftDict];
問題は、これらのテキスト フィールドの 1 つが空白の場合、nil
値が値のリストの最後に到達したことを辞書に伝えるため、NSDictionary が切り捨てられることです。
ディクショナリ内の各値に対して空白のオブジェクトがあることを確認することで、この問題をうまく回避できます (たとえば、 string のように@""
)。
しかし、私の値は、. ではなく「空白」の値として SQLite データベースに到着しますNULL
。これは大したことではないかもしれませんが、使用NULL
するとデータベース内のスペースが少なくて済むと聞きました。
NULL
NSDictionary を途中で切り捨てずにデータベースに挿入するにはどうすればよいですか?