Vista de tabla No se actualiza según los enlaces - Parte dos
-
20-09-2019 - |
Pregunta
Título tomado de esta pregunta, de los cuales este es no un duplicado. Vea mi respuesta allí por lo que estaba mal para ese interrogador; Soy el autor de esa respuesta, y mi problema no es ese.
Tengo una vista de tabla con tres columnas, cuyos enlaces de valor están vinculados a tres propiedades del arrangedObjects
de un controlador de matriz. El controlador de matriz contentArray
está vinculado al visitationResults
de mi objeto de documento; Los elementos en esa matriz son instancias de una clase modelo (VisitationResult). También he atado el controlador de matriz selectionIndexes
y sortDescriptors
a las propiedades de mi documento.
Estoy mutando mi propiedad a través de un par de accesorios:
- (void) addVisitationResult:(VisitationResult *)newVisitationResult {
[self insertObject:newVisitationResult inVisitationResultsAtIndex:[self countOfVisitationResults]];
NSLog(@"arrayController arrangedObjects: %@", [arrayController arrangedObjects]);
}
Que NSLog
La declaración se ejecuta y confirma que el controlador de matriz está reuniendo y organizando mis objetos modelo. Esto significa que estoy pasando por mi propiedad y recibiendo notificaciones de KVO para mi documento (lo que demuestra que el problema del interrogador anterior, el de evitar la propiedad, no es el problema que tengo).
yo añadí NSLog
declaraciones en los métodos de accesor de la clase de objetos de mi modelo. Se llama a uno de ellos, por el controlador de matriz, para ordenar los objetos (esa propiedad es la clave de clasificación). Los otros dos, que el controlador de matriz no conoce, nunca se llaman.
Por lo tanto, mi vista de mesa permanece en blanco.
Solución
Encontré el problema: es porque había atado explícitamente el selectionIndexes
y sortDescriptors
ANULCIONES DE LA VISTA DE TABLA.
Esto no era necesario, de todos modos: acabo de comprobar y la documentación dice:
selectionIndexes
Por lo general, SelectionIndexes está vinculado automáticamente al NsArrayController al que está obligado la primera nstablecolumn.
sortDescriptors
Por lo general, este enlace se crea automáticamente, vinculante a los descriptores de clasificación del NsArrayController de la NSTABLECOLUMN INICIALMENTE unida.
Parece que no solo no es necesario, sino que la vinculación o ambos de estos dos romperá la vista de la tabla.