Ho provato a inizializzare il mio NSMutableArray in 100 modi da domenica e NULLA funziona per me. Ho provato a impostarlo uguale a un NSMutableArray appena allocato e inizializzato, semplicemente allocando, inizializzando la variabile da sola, ogni combinazione a cui potevo pensare e sempre lo stesso risultato.NSMutableArray addObject: - [__ NSArrayI addObject:]: selettore non riconosciuto inviato all'istanza
Ecco il codice:
Object.h
NSMutableArray *array;
@property (copy) NSMutableArray *array;
Object.m
@synthesize array;
if (self.array) {
[self.array addObject:anObject];
}
else {
self.array = [NSMutableArray arrayWithObjects:anObject, nil];
}
NOTA: In debug "anObject" non è nullo in fase di esecuzione ...
Ho testato anObject ed è L'inizializzazione funziona bene, ma continuo a ricevere l'errore qui sotto quando Provo ad aggiungereObject: a self.array.
2010-07-10 11: 52: 55,499 Miaapp [4347 1807] - [__ NSArrayI addObject:]: selettore non riconosciuto inviato ad esempio 0x184480
2010-07-10 11: 52: 55,508 MyApp [4347: 1807] *** terminazione app a causa di eccezione non identificata 'NSInvalidArgumentException', la ragione: '- [__ NSArrayI addObject:]: selettore non riconosciuto inviato ad esempio 0x184480'
qualcuno ha idea di cosa sta andando male ?
Si noti che la dichiarazione di proprietà non deve corrispondere al tipo di ivar, quindi si dovrebbe usare' @property (nonatomic, copy) NSArray * array; nel tuo caso. Nota inoltre che la tua proprietà è implicitamente atomica, ma l'implementazione del tuo setter non è - vedi [Atomicity] (http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocProperties.html # // apple_ref/doc/uid/TP30001163-CH17-SW28). –
Infine, '-mutableCopy' restituisce già un'istanza mantenuta, quindi non è necessario' [array retain] '- vedere [Politica proprietà degli oggetti] (http://developer.apple.com/mac/library/documentation/Cocoa /Conceptual/MemoryMgmt/Articles/mmObjectOwnership.html#//apple_ref/doc/uid/20000043-SW1). –
Grazie ancora, signor Fritzsche. Ero curioso di quella riserva in più, ma sembrava funzionare nel mio programma. Apparentemente ho un bug altrove. : -/Tu sei l'uomo, grazie per aver contribuito a questo post e, inavvertitamente, il mio programma; Apprezzo il tuo tempo! Cordiali saluti, Z @ K! – Zak