Sono piuttosto nuovo all'obiettivo-c e provo a creare una piccola app per l'iphone.
Ho quasi finito con questo piccolo errore qui. In realtà, ho cercato ore con google per trovare una soluzione adeguata, ma sfortunatamente non sono in grado di trovare una soluzione che funzioni.
Sto usando questo tutorial qui per costruire un UITableView: UITableView Tutorial Il messaggio di errore completo è simile al seguente:obiettivo-c "metodo di mutazione inviato all'oggetto immutabile" errore
* Chiusura di applicazione a causa di eccezione non identificata 'NSInternalInconsistencyException', la ragione: '* - [ NSCFArray InsertObject: atIndex:]: metodo di mutazione inviato oggetto immutabile'
Questo è il controller dati di intestazione: MyLinksDataController.h
@interface MyLinksDataController : NSObject {
NSMutableArray *tableList; //<---important part
}
- (unsigned)countOfList;
- (id)objectInListAtIndex:(unsigned)theIndex;
- (void)addData:(NSString *)data; //<---important part
- (void)removeDataAtIndex:(unsigned)theIndex;
@property (nonatomic, copy, readwrite) NSMutableArray *tableList; //<---important part
.....
e il metodo Titolare del trattamento: MyLinksDataController.m
#import "MyLinksDataController.h"
@implementation MyLinksDataController
@synthesize tableList;
- (id)init {
if (self = [super init]) {
NSLog(@"Initilizing DataController");
//Instantiate list
NSMutableArray *localList = [[NSMutableArray alloc] init];
self.tableList = [localList copy];
[localList release];
//Add initial Data
[self addData:@"AAAAAAAAAAAAAA"];
[self addData:@"BBBBBBBBBBBBBB"];
}
return self;
}
----------------------------- - in avanti nel codice sorgente ---------------------------------
- (void)addData:(NSString*)data; {
[tableList addObject:data]; //<---- here the app crashes
}
Vorrei apprezzo molto qualsiasi aiuto.
Grazie per il vostro supporto in anticipo.
Daniel
Se una proprietà copia è davvero chiamato per, poi la sostituzione di un conservano proprietà sta per essere una soluzione povera. Poiché non esiste una parola chiave mutablecopy, dichiarare la proprietà come copia, ma scrivere il proprio accessor invece di utilizzare accessors sintetizzati. –
Buon punto. Vorrei anche dire che non vedo quasi mai oggetti che pubblicizzano la proprietà 'NSMutableArray'. Il purista in me vorrebbe vedere un setter personalizzato che memorizza una copia mutabile dell'oggetto e un getter personalizzato che restituisce una copia immutabile autorizzata. –