skunkio Inviato 7 Maggio 2010 Segnala Condividi Inviato 7 Maggio 2010 Salve a tutti, durante la compilazione della mia app ottengo da xcode l'errore in oggetto. All'interno della mia applicazione ho 3 classi ClassA (UIViewController) ClassB (UIViewController) ClassC (NSObject) All'interno di ClassA ho definito una proprietà definita come ClassB @property (nonatomic, retain) ClassB *B; all'interno di ClassB ho una proprietà definita come ClassC @property (nonatomic, retain) ClassC *C; ClassC ha all'interno alcune proprietà di tipo stringa @property (nonatomic, retain) NSString *Prop1; @property (nonatomic, retain) NSString *Prop2; L'errore: accessing unknown 'C' component of a property lo ottengo all'interno di ClassA alla linea di seguito: txtTest.text = self.ClassB.ClassC.Prop1; nella classe (ClassA) inizializzo ClassB come di seguito self.B = [[ClassB alloc] init]; come posso accedere alle proprietà di ClassC, instanziando ClassB, all'interno di ClassA? Grazie, saluti Link al commento Condividi su altri siti Altre opzioni di condivisione...
ignazioc Inviato 7 Maggio 2010 Segnala Condividi Inviato 7 Maggio 2010 ci sono alcuni errori nel tuo codice, alcuni logici alcuni semantici. immagino che la tua confusione derivi dall'uso di property, che nato per semplificare il codice invece ha finito per confondere gli utenti nascondendo la reale implementazione. il mio consiglio è quello di utilizzare dei comuni metodi getter e setter per avere più chiaro che cosa si sta facendo. Tralasciando quella che potrebbe essere solo la mia opinione di programmatore a basso livello.. l'errore nel tuo codice è dovuto probabilmente al fatto che non hai realmente istanziato la classeC all'interno della classeB, ma ne hai solo fatto la dichiarazione. devi quindi riscriverne il metodo INIT di classeB in modo che allochi un'istanza della classeC. attento quindi poi ai metodi dealloc e release! ma sei sicuro che questa sia la gerarchia corretta delle classi? Problemi a programmare il tuo iphone? contattami Link al commento Condividi su altri siti Altre opzioni di condivisione...
skunkio Inviato 9 Maggio 2010 Autore Segnala Condividi Inviato 9 Maggio 2010 ci sono alcuni errori nel tuo codice, alcuni logici alcuni semantici.immagino che la tua confusione derivi dall'uso di property, che nato per semplificare il codice invece ha finito per confondere gli utenti nascondendo la reale implementazione. il mio consiglio è quello di utilizzare dei comuni metodi getter e setter per avere più chiaro che cosa si sta facendo. Tralasciando quella che potrebbe essere solo la mia opinione di programmatore a basso livello.. l'errore nel tuo codice è dovuto probabilmente al fatto che non hai realmente istanziato la classeC all'interno della classeB, ma ne hai solo fatto la dichiarazione. devi quindi riscriverne il metodo INIT di classeB in modo che allochi un'istanza della classeC. attento quindi poi ai metodi dealloc e release! ma sei sicuro che questa sia la gerarchia corretta delle classi? Ciao Ignazio, grazie per la risposta e scusa il ritardo con cui replice. Le tue osservazioni sono più che giuste...c'era in effetti più di un errore logico, partendo dalla gerarchia delle classi e finendo alle proprietà che avevo dichiato come tali. Grazie, saluti Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.