我有这个随机崩溃的代码。我无法理解坠机背后的原因。
__block NSMutableArray *returnEntries= [NSMutableArray array];
[[[DB sharedManager]getSecureQueue] inTransaction:^(FMDatabase * _Nonnull db, BOOL * _Nonnull rollback) {
FMResultSet *results = [db executeQuery:@"SELECT Name FROM Contacts WHERE PK= ?",@(pk)];
while([results next]) {
//process data
}
}];
我得到了崩溃:
EXC_BAD_INSTRUCTION (code-EXC_I386_INVOP,subcode=0x0)
我在同一个队列上运行所有的SQL查询。
-(FMDatabaseQueue*)getSecureQueue{
return _secureQueue;
}
其中_secureQueue是一次性初始化
_secureQueue= [FMDatabaseQueue databaseQueueWithPath:dbPath];
答案 0 :(得分:0)
当我在后台线程中运行代码时,崩溃没有发生。如果有人能够在这里发表一些有关其发生情况的见解,那就太棒了。