在iOS 10中的sqlite3_prepare_v2 exc_bad_access
我在我的iOS项目中使用sqlite数据库。 在iOS 9中,所有的东西都是完美的。 现在我已经更新新的Xcode。 但是应用程序在'sqlite3_prepare_v2'上崩溃了很多次。
另外,我不closures数据库加class。 并且只打开一次。 我已经添加数据库打开下面的代码b'acs在debugging我有DBclosures。 但仍然崩溃。
紧急
谁能帮我 ?
提前致谢
我认为问题是在2592行。
不要把key作为string传递给sqlite3_key(…)不知道如何生成密钥,但如果第一个字节设置为'\ 0',那么strlen返回0(这可能会发生很多,如果你使用一些自动生成的助手基于NSData随机字节)
sqlite3_key定义:
SQLITE_API int SQLITE_STDCALL sqlite3_key(sqlite3 *db, const void *pKey, int nKey)
它期望也允许“\ 0”的nKey字节
请尝试:
NSData *passBytes = [g_sqlite_key dataUsingEncoding:NSUTF8StringEncoding]; int status = sqlite3_key(contactDB, passBytes.bytes, passBytes.length); if (status != SQLITE_OK) { // handle error and return } // continue...