#author("2016-06-06T16:43:13+09:00","default:wikiwriter","wikiwriter") [[SQLite]] &tag(FMDB); *目次 [#f8e9abd7] #contents *関連ページ [#d4f819e0] -[[SQLite]] *参考情報 [#v7e9630d] *概要 [#i1637778] -SQLiteをObjective-CやSwiftから利用するためのライブラリ *Swiftから使う [#uff7e27d] **nilの取り扱いに注意 [#s7a88320] -基本Objective-C用に作られたライブラリなのでnilの取り扱いに注意が必要。 **INSERTする場合 [#g4ba4a57] -nilをNULLとしてDBに保存したい場合NSNullに変換する。 #pre{{ do { let identifier = 42 let name = "Liam O'Flaherty (\"the famous Irish author\")" let date = NSDate() let comment: String? = nil try db.executeUpdate("INSERT INTO authors (identifier, name, date, comment) VALUES (?, ?, ?, ?)", values: [identifier, name, date, comment ?? NSNull()]) } catch { print("error = \(error)") } }} **値を取得する場合 [#sc22e8b8] -stringForColumnはNULLをnilとして返す。大してintForColumnはNULLを0として返す。[[Result Values From A Query:https://www.sqlite.org/c3ref/column_blob.html]]のConversionを参考のこと。 -intForColumnだとNULLが保存されていても0が保存されていても区別できないことになる。区別したい場合columnIsNullを使用する。