此代碼片段來自iPad應用程序,當前位於應用程序商店中,並使用ARC編寫。該代碼使用xCode 4.4.1(4F1003)開發,並在IOS Simulator 5.1(272.21)中正常運行。我最近安裝了xCode 4.5和IOS Simulator 6.0,當sqlite3_open返回到我的目標C代碼時,我現在得到EXC_BAD_ACCESS(code = 2,address = 0x200)。xCode 4.5 sqlite3_open EXC_BAD_ACCESS in objc_storeStrong
sqlite3 *tempDatabase;
const char *sqlStatement = [s_DBEngineDBName UTF8String];
commandReturn = sqlite3_open(sqlStatement, &tempDatabase); // open main db
if(commandReturn == SQLITE_OK) {
// ...
}
我以前用過下面的命令來打開數據庫,但是它在新環境下也失敗了。
commandReturn = sqlite3_open([s_DBEngineDBName cStringUsingEncoding:NSStringEncodingConversionAllowLossy], &tempDatabase); // open main db
正如我上面介紹的那樣,通過SQLite代碼,它將按預期工作,直到執行最終的return語句。我很困惑,爲什麼objc_storeStrong甚至涉及。
'sqlStatement'的價值是什麼?什麼是完整的調用堆棧?什麼是'objc_storeString'的參數? –
打開殭屍,看看它是否捕捉任何東西。 – bbum