我遇到了一个错误,一些用户在设备内存不足时会出现EXC_BAD_ACCESS
。堆栈跟踪指向下面的if
行,我认为这是因为被释放但仍在使用的UTF8String:
dispatch_sync(dbQueue, ^{
if (sqlite3_bind_text(sql_stmt, 1, pid.UTF8String, -1, SQLITE_STATIC) != SQLITE_OK) {
...
我很难在我的设备或模拟器上复现这个问题,有什么方法可以强制或模拟低内存情况吗?
更新:
我已经尝试在上面的行上设置断点,然后使用“模拟内存警告”选项,但我仍然无法复现EXC_BAD_ACCESS错误。
didReceiveMemoryWarning
的方法,但它是否也重现了低内存设备的相同行为呢? - heitortsergent