Ho una vista che viene utilizzata in ciascuno degli elementi della mia CollezioneView. Ho un IBOutlet per il CollectionViewItem dalla mia vista e ho quello collegato in Interface Builder. Voglio accedere a un valore da representObject (che è un oggetto Core Data) nel mio codice di vista. Ecco un esempio di quello che sto cercando di fare - accedere ad un valore di sequenza del representedObject:Come si ottiene representObject da una vista in NSCollectionViewItem?
Nel file .h:
IBOutlet NSCollectionViewItem *item; // Connected in IB
Nel file .m
NSString *seq = [[item representedObject] valueForKey:@"seq"];
NSLog(@"Seq: %@", seq); // returns Seq: (null)
So che il seq viene compilato perché è stato associato a un'etichetta nella vista CollectionViewItem in IB utilizzando il percorso chiave representObject.seq e ciò funziona.
Qualche idea sul perché quando provo ad accedere al valore per seq nel codice per la vista restituisce null?
Grazie, ha fatto il trucco. – Austin
Sono confuso da questa risposta. Innanzitutto, @kperryua afferma "Il modello tipico per accedere all'istanza di NSCollectionViewItem consiste nel collegarsi al prototipo, dicendo che l'hai fatto e che funziona." Ma la domanda di @ Austin menziona solo l'uso del "percorso della chiave representObject.seq" e in effetti è difficile vedere come si legherebbe l'elemento di collectionViewPrototype a una vista di collectionViewItem. Dico che è impossibile, ma sono felice di essere stato smentito. In secondo luogo, la documentazione di Apple per copyWithZone di NSObject: afferma esplicitamente "Non si deve sovrascrivere questo metodo." –
Overriding copyWithZone: è abbastanza sicuro finché la superclasse allocWithZone: viene chiamata al suo interno. Non ho controllato per vedere se effettivamente dicono di non farlo, ma in qualche modo penso che tu possa averlo confuso con allocWithZone: o alcuni di questi. – ctpenrose