Domanda

Titolo preso in prestito da questa domanda , di cui questo è non un duplicato. Vedere la mia risposta non per quello che era sbagliato per quel interrogante; Sono l'autore di tale risposta, e il mio problema non è che uno.

Ho una vista tabella con tre colonne, i cui attacchi valore sono vincolati a tre proprietà del arrangedObjects di un controller di array. contentArray del controller di array è legato al visitationResults del mio oggetto di documento; gli elementi di tale array sono istanze di una classe del modello (VisitationResult). Ho anche legato selectionIndexes e sortDescriptors del controller di array di proprietà del mio documento.

sto mutando la mia proprietà attraverso un paio di funzioni di accesso:

- (void) addVisitationResult:(VisitationResult *)newVisitationResult {
    [self insertObject:newVisitationResult inVisitationResultsAtIndex:[self countOfVisitationResults]];
    NSLog(@"arrayController arrangedObjects: %@", [arrayController arrangedObjects]);
}

Questa affermazione NSLog corre, e conferma che il controller di array sta raccogliendo e organizzando i miei oggetti del modello. Questo vuol dire che sto attraversando la mia proprietà e ottenere le notifiche KVO per il mio documento (il che dimostra che il problema del interlocutore in precedenza, che di bypassare la proprietà, non è il problema che sto avendo).

Ho aggiunto dichiarazioni NSLog a metodi di accesso mio modello di classe di oggetti. Uno di essi viene chiamato-dal controller di array, per ordinare gli oggetti (che proprietà è la chiave di ordinamento). Gli altri due, che il controller di array non conosce, non vengono mai chiamati.

Quindi, la mia vista tabella rimane vuota.

È stato utile?

Soluzione

Ho trovato il problema: È perché avevo legato in modo esplicito i selectionIndexes e sortDescriptors attacchi della visualizzazione della tabella

.

Questo non è stato necessario, in ogni caso: ho appena controllato, e la documentazione dice:

  

selectionIndexes

     

In genere, selectionIndexes viene automaticamente associato alla NSArrayController che il primo è destinato a NSTableColumn.

     

sortDescriptors

     

In genere questo legame viene creato automaticamente, il legame con i descrittori di ordinamento della NSArrayController del NSTableColumn inizialmente legato.

Sembra che non solo non è necessario, ma vincolante uno o entrambi questi due romperà vista tabella.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top