Recientemente, lancé una nueva versión de una aplicación iOS escrita en Swift 4.2 y Crashlytics informó que la aplicación se bloqueó más de 30 veces en el código generado compilado. Busqué en las clases de mi proyecto y también intenté reproducir el bloqueo sin éxito. ¿Alguien tiene una forma de solucionar los bloqueos que ocurren en el código generado por el compilador? Este es el registro de fallos:
Crashed: com.apple.main-thread 0 dealers 0x1008f184c $S7dealers20BrowseViewControllerC05tableC0_12cellForRowAtSo07UITableC4CellCSo0jC0C_10Foundation9IndexPathVtF (<compiler-generated>) 1 dealers 0x1008f18b0 $S7dealers20BrowseViewControllerC05tableC0_12cellForRowAtSo07UITableC4CellCSo0jC0C_10Foundation9IndexPathVtFTo (<compiler-generated>) 2 UIKitCore 0x1ced08de4 <redacted> + 684 3 UIKitCore 0x1ced0932c <redacted> + 80 4 UIKitCore 0x1cecd4a04 <redacted> + 2256 5 UIKitCore 0x1cecf28f0 <redacted> + 140 6 UIKitCore 0x1cef877dc <redacted> + 1380 7 QuartzCore 0x1a5df9b74 -[CALayer layoutSublayers] + 184 8 QuartzCore 0x1a5dfeb2c CA::Layer::layout_if_needed(CA::Transaction*) + 324 9 QuartzCore 0x1a5d5d44c CA::Context::commit_transaction(CA::Transaction*) + 340 10 QuartzCore 0x1a5d8bd7c CA::Transaction::commit() + 608 11 QuartzCore 0x1a5cca170 CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) + 324 12 QuartzCore 0x1a5d9329c display_timer_callback(__CFMachPort*, void*, long, void*) + 272 13 CoreFoundation 0x1a176601c __CFMachPortPerform + 188 14 CoreFoundation 0x1a178d868 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 56 15 CoreFoundation 0x1a178cfb4 __CFRunLoopDoSource1 + 440 16 CoreFoundation 0x1a1787d6c __CFRunLoopRun + 2140 17 CoreFoundation 0x1a17871f0 CFRunLoopRunSpecific + 436 18 GraphicsServices 0x1a3a00584 GSEventRunModal + 100 19 UIKitCore 0x1ceaded40 UIApplicationMain + 212 20 dealers 0x10079b8b4 main (AuctionDetailDocumentsSectionController.swift:22) 21 libdyld.dylib 0x1a1246bb4 start + 4Actualización: después de incontables horas, me di cuenta de que se debía a la forma en que implementé la extracción para actualizar. Cuando ocurrió un evento de extracción para actualizar, vacié la colección de respaldo pero no volví a cargar la vista de tabla. Cuando bajo la vista de la tabla lo suficiente y la vista de la tabla se recupera desde la parte inferior, intenta cargar las filas inferiores, lo que activa celda por fila. La colección vacía provocó el accidente.