一问题:Xcode16.0运行在iPhone16/ios18.0 以上发生闪退, 闪退在 YYCache–>YYKVStorage 文件内。
以上删除保以下错误:
function isBulkReadStatement, file SQLiteDatabaseTracking.cpp
解决方案:
找到YYKVStorage文件中_dbClose 方法替换里面的一行代码:
- (BOOL)_dbClose {
// if (_dbStmtCache) CFRelease(_dbStmtCache); 将这行代码替换
}
替换后的代码(只替换以上注释的代码,其余不变):
- (BOOL)_dbClose {
// 替换后的代码
if (_dbStmtCache) {
CFIndex size = CFDictionaryGetCount(_dbStmtCache);CFTypeRef *valuesRef = (CFTypeRef *)malloc(size * sizeof(CFTypeRef));CFDictionaryGetKeysAndValues(_dbStmtCache, NULL, (const void **)valuesRef);const sqlite3_stmt **stmts = (const sqlite3_stmt **)valuesRef;for (CFIndex i = 0; i < size; i ++) {sqlite3_stmt *stmt = stmts[i];sqlite3_finalize(stmt);}free(valuesRef);CFRelease(_dbStmtCache);
}
}