ロボット池田 (2010年12月17日 09:47) 企画開発部 / iPhone
先日iPhoneのアプリケーションを作っている際に、 CoreDataに登録されているレコードから、 乱数で得た値と同じ値を持つデータを引き出そうとした際に、 どうやってもデータが取得出来ないという状況が発生しました。
原因はCoreDataに作成したテーブルの、 項目名を「No」と設定していたことが原因でした。 なぜNoがダメだったかをよく考えれば、 SQLでは「No」は予約語であり、YES/NOのNOとして扱われてしまいます。 CoreDataは内部ではSQLiteが動作しているので、 SQLの予約語といった条件は同一となります。
条件指定の書き方はSQLと同一なのに、 SQL文全体を書かなくても済むために、 基本的な事を忘れてしまいました。
言語による記述や処理のアシストが進む分、 プログラマの知識や判断を鈍らせることがあるので、 要注意だと思う出来事でした。
CoreDataの項目名に注意
ロボット池田 (2010年12月17日 09:47)
企画開発部 / iPhone
先日iPhoneのアプリケーションを作っている際に、
CoreDataに登録されているレコードから、
乱数で得た値と同じ値を持つデータを引き出そうとした際に、
どうやってもデータが取得出来ないという状況が発生しました。
原因はCoreDataに作成したテーブルの、
項目名を「No」と設定していたことが原因でした。
なぜNoがダメだったかをよく考えれば、
SQLでは「No」は予約語であり、YES/NOのNOとして扱われてしまいます。
CoreDataは内部ではSQLiteが動作しているので、
SQLの予約語といった条件は同一となります。
条件指定の書き方はSQLと同一なのに、
SQL文全体を書かなくても済むために、
基本的な事を忘れてしまいました。
言語による記述や処理のアシストが進む分、
プログラマの知識や判断を鈍らせることがあるので、
要注意だと思う出来事でした。