最近使用FMdataBase时遇到一个问题,更新数据时,总是跳到FMDataBase的某行代码,陷入死循环,然后通过
找到了问题的所在,
int count;
NSString *updateSql= @"update tableName set count = ? and status = ? where id =?";
[_database executeUpdate:updateSql,count+ 1,-1,id]);
比如说这样的代码就会出现这种错误,原因是FMDataBase中的executeUpdate中所有的参数都必须是对象类型的数
据,例如上面的count+1和-1全部是int类型的,所以就出现了错误,解决办法是把他们转化成NSNumber或者SString
就可以了,在http://stackoverflow.com/上有比较详细的解答,顺便贴出链接,有兴趣的可以观看原文
http://stackoverflow.com/questions/12434214/exc-bad-access-on-insert-sqlite3-with-fmdatabase-only-can-query