ios - KVO falla en UITextField initWithFrame
objective-c crash (0)
Un cliente de mi aplicación me envió este extraño informe de fallos y no puedo entender cómo podría colapsar. No puedo reproducir el problema yo mismo, así que dependo del informe de fallas.
Se bloquea en la siguiente línea de código muy simple:
UITextField *value = [[UITextField alloc] initWithFrame:frame];
El accidente parece estar relacionado con la observación de valores-clave (KVO), pero no estoy haciendo nada con eso aquí; ¡es simplemente un constructor! La única posibilidad que pude ver, es que otro hilo está escribiendo en un objeto dealloc''ed que tiene la misma dirección de memoria que un objeto creado por el initWithFrame:
Pero en el informe de bloqueo, todos los otros hilos son silenciosos.
He encontrado otras preguntas similares, pero ninguna de ellas tiene una respuesta.
¿Algunas ideas?
Aquí están las partes relevantes del informe de fallas:
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000010
Triggered by Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libobjc.A.dylib 0x0000000181981b90 objc_msgSend + 16
1 Foundation 0x0000000182bf2454 -[NSObject(NSKeyValueObserverNotification) willChangeValueForKey:] + 324
2 QuartzCore 0x0000000184deb11c CA::Layer::set_delegate(objc_object*) + 72
3 UIKit 0x0000000187456f40 -[UIView _createLayerWithFrame:] + 580
4 UIKit 0x0000000187456a00 UIViewCommonInitWithFrame + 688
5 UIKit 0x00000001874566f0 -[UIView initWithFrame:] + 140
6 UIKit 0x000000018745dfb0 -[UILabel initWithFrame:] + 48
7 UIKit 0x0000000187542064 -[UITextField createTextLabelWithTextColor:] + 76
8 UIKit 0x0000000187541c30 -[UITextField initWithFrame:] + 416
9 Flyskyhy 0x00000001000e1f68 -[ElementView doInitWithUnit:] (ElementView.m:178)