ios sqlite fmdb

sqlite ios



FMDBBlockSQLiteCallBackFunction Crash en la aplicaciĆ³n que no usa makeFunctionNamed (1)

didFinish hace que parezca que puedes tener una condición de carrera en esta línea:

6 CFNetwork 0x00000001851475a4 __49-[__NSCFLocalSessionTask _task_onqueue_didFinish]_block_invoke + 300

Intente emular hardware lento para reproducir el estado del usuario final.

Estoy trabajando en una aplicación que está en la tienda de aplicaciones, que usa FMDB para interactuar con su base de datos sqlite. Hemos recibido algunos informes de fallos con seguimientos de pila como este:

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

Sin embargo, al leer el código FMDB , parece que FMDBBlockSQLiteCallBackFunction solo se llama como la devolución de llamada para las funciones de SQLite creadas usando el FMDatabase makeFunctionNamed:maximumArguments:withBlock: , que no estamos usando en absoluto.

¿Alguna idea de lo que podría estar causando accidentes como este?