我在我的iOS项目数据库使用sqlite。在iOS 9中,一切都运行得很完美。现在我已经更新了新的Xcode。但是应用程序在'sqlite3_prepare_v2'时崩溃了很多次。
另外,我没有超时关闭数据库。而且只打开一次。我在调试中添加了DB打开下面的代码b'acs,我得到了DB关闭。但还是崩溃了
事故有人能帮我吗?
Thanks in advance
我想问题在第2592行。
传递给sqlite3_key(…)时不要将key作为字符串处理不确定如何生成密钥,但如果第一个字节设置为' ',则strlen返回0(如果你使用一些基于NSData随机字节的自动生成的助手,这可能会经常发生)
sqlite3_key定义:
SQLITE_API int SQLITE_STDCALL sqlite3_key(sqlite3 *db, const void *pKey, int nKey)
它期望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...