Enlace UITableViewCell al model de datos (actualizaciones impulsadas por FetchedResultsController)

Estoy intentando tener mi UITableViewCells individual: me encantaría que los valores iniciales del model se trajeran a su representación de interfaz de usuario, así como después de que el usuario realice un cambio, que el nuevo valor de la interfaz de usuario vuelva al model. Concentrémonos en este último primero: los cambios de interfaz de usuario se propagan al model.

Para un poco más de comprensión de background, me estoy topando con un problema al agregar un nuevo elemento. Esta tabla es controlada por un NSFetchedResultsController que envía un didChangeObject con un ChangeInsert y un segundo didChangeObject para ChangeUpdate . El ChangeInsert dispara un insertRowsAtIndexPaths en la tabla y el ChangeUpdate hace un reloadRowsAtIndexPath .

Debido a estas dos respuestas, mi vista de tabla solicita cellForRowAtIndexPath dos veces. Esto no debería ser un problema si la misma celda se desecha correctamente entre requestes, pero no parece ser: ¡Recibo una afirmación de que la propiedad en el model ya está vinculada a un RACSignal ! He intentado varias maneras de ser más explícito, como:

RAC(self.model,value) = [ [RACSignal merge:@[self.valueField.rac_textSignal] ] takeUntil:self.rac_prepareForReuseSignal] sin embargo, la señal de reutilización no se dispara en el time, ya que todavía afirma (aparte, ¿hay una forma recomendada? para depurar directamente una señal como esta de disparo?)

He intentado agregar un takeUntil:[RACObserve(self, model) adicional takeUntil:[RACObserve(self, model) para deshacerse de la señal tan pronto como se sobrescribe el model de la celda reutilizada (y hacer que se una al nuevo model) y, comprensiblemente, esto parece dar como resultado el primer valor disponiendo Sin embargo, agregar skip:1 a la observación me devuelve donde estoy.

Por favor, avíseme si hay algún otro lugar donde pueda agregar claridad o si tiene otra manera de exponer estas cosas. Soy muy nuevo en Reactive Cocoa y todavía estoy aprendiendo las mejores prácticas 🙂

¡Gracias!