FMDBBlockSQLiteCallBackFunction应用程序中没有使用makeFunctionNamed的崩溃

Gre*_*reg 102 sqlite fmdb ios

我正在开发一个应用程序商店中的应用程序,FMDB用于与其sqlite数据库进行交互.我们收到了一些崩溃报告,堆栈跟踪如下:

Thread : Crashed: NSOperationQueue 0x170239c20 :: NSOperation 0x17024d7d0 (QOS: LEGACY)
0  libobjc.A.dylib                0x000000019701c0b4 objc_retain + 20
1  MyApp                          0x00000001002bdff4 FMDBBlockSQLiteCallBackFunction
2  MyApp                          0x00000001002bdb1c FMDBBlockSQLiteCallBackFunction
3  MyApp                          0x00000001002b66b4 FMDBBlockSQLiteCallBackFunction
4  MyApp                          0x00000001002980fc FMDBBlockSQLiteCallBackFunction
5  MyApp                          0x000000010029f20c FMDBBlockSQLiteCallBackFunction
6  CFNetwork                      0x00000001851475a4 __49-[__NSCFLocalSessionTask _task_onqueue_didFinish]_block_invoke + 300
7  Foundation                     0x00000001866bf1c4 __NSBLOCKOPERATION_IS_CALLING_OUT_TO_A_BLOCK__ + 16
8  Foundation                     0x0000000186610604 -[NSBlockOperation main] + 96
9  Foundation                     0x00000001866001cc -[__NSOperationInternal _start:] + 636
10 Foundation                     0x00000001866c1f28 __NSOQSchedule_f + 228
11 libdispatch.dylib              0x0000000197655954 _dispatch_client_callout + 16
12 libdispatch.dylib              0x00000001976600a4 _dispatch_queue_drain + 1448
13 libdispatch.dylib              0x0000000197658a5c _dispatch_queue_invoke + 132
14 libdispatch.dylib              0x0000000197662318 _dispatch_root_queue_drain + 720
15 libdispatch.dylib              0x0000000197663c4c _dispatch_worker_thread3 + 108
16 libsystem_pthread.dylib        0x000000019783522c _pthread_wqthread + 816
Run Code Online (Sandbox Code Playgroud)

然而,从阅读FMDB代码,它看起来像FMDBBlockSQLiteCallBackFunction只被称为回调的SQLite使用创建的函数FMDatabasemakeFunctionNamed:maximumArguments:withBlock:方法,该方法我们不使用在所有.

什么可能导致崩溃的想法?

Kir*_*eck 1

didFinish使得您看起来可能在这条线上存在竞争条件:

\n\n
6  CFNetwork                      0x00000001851475a4 __49-[__NSCFLocalSessionTask _task_onqueue_didFinish]_block_invoke + 300\n
Run Code Online (Sandbox Code Playgroud)\n\n

尝试模拟慢速硬件来重现最终用户\xe2\x80\x99s 状态。

\n