我的日志中出现了两次崩溃,使用以下代码插入到我的 SQLite DB 中 - 该代码在大多数情况下都能完美运行,但显然存在导致崩溃的错误。
它在带有 EXC_BAD_ACCESS 的 sqlite3_last_insert_rowid 或 sqlite3_close 上崩溃(我持有对 SMSDatabase 的引用,并且它处于单例中,不确定为什么会被释放)和 SIGABRT(内存问题?)
- (NSInteger)query:(NSString *)query {
NSInteger lastRowID = 0;
if (sqlite3_open([self.databasePath UTF8String], &smsDatabase) == SQLITE_OK)
{
sqlite3_stmt *statement = nil;
const char *sql = [query UTF8String];
if (sqlite3_prepare_v2(smsDatabase, sql, -1, &statement, NULL) == SQLITE_OK) {
if (sqlite3_step(statement) == SQLITE_DONE)
{
lastRowID = sqlite3_last_insert_rowid(smsDatabase);
}
}
sqlite3_finalize(statement);
}
sqlite3_close(smsDatabase);
return lastRowID;
}
我哪里错了?