簡體   English   中英

iOS 10中的sqlite3_prepare_v2 exc_bad_access

[英]sqlite3_prepare_v2 exc_bad_access in iOS 10

我在iOS項目中使用sqlite作為數據庫。 在iOS 9中,所有東西都運行得很好。 現在我更新了新的Xcode。 但是應用程序在'sqlite3_prepare_v2'上多次崩潰。

此外,我不是關閉數據庫加班。 並且只打開一次。 我已經在下面的代碼中添加了DB open在調試中的b'acs我得到了DB關閉。 但仍然崩潰了。

緊急

誰能幫我 ?

提前致謝

我認為問題在第2592行。

在將密鑰傳遞給sqlite3_key時不要將密鑰視為字符串(...)不確定如何生成密鑰但如果第一個字節設置為'\\ 0'則strlen返回0(如果使用某些自動生成的幫助程序,則可能會經常發生NSData隨機字節)

sqlite3_key定義:

SQLITE_API int SQLITE_STDCALL sqlite3_key(sqlite3 *db, const void *pKey, int nKey)

它期望nKey字節也允許“\\ 0”

而是嘗試:

 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...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM