No se pueden agregar elementos a un archivo NSMutableArray

Mi objective es agregar una cadena a una matriz, y lo hago en un método al que llamo.

En este método, obtengo un valor nulo en la matriz y no sé por qué. Tengo esto al comienzo de mi clase:

NSMutableArray *listOfEvents; 

y un método que invoco en cada evento:

 -(void)EventList { [listOfEvents addObject:@"ran"]; NSLog(@"%@", listOfEvents); } 

Obtengo (null) en el registro.

Si pongo la definición de matriz NSMutableArray *listOfEvents; en el cuerpo de la función, obtengo el valor de cadena @"ran" , cada vez, por lo que la matriz siempre tiene solo un valor, en lugar de tener muchas cadenas denominadas @"ran" .

¿Qué pasa con esto? Parece que no puedo entender algo sobre las matrices, aunque he leído los documentos varias veces.

Supongo que no ha inicializado listOfEvents .

Asegúrese de hacer listOfEvents = [[NSMutableArray alloc] init]; en el método init tu clase. También asegúrese de liberarlo en el método dealloc su clase.

Si obtienes nil en tu mensaje de registro, debes asegurarte de que listOfEvents no sea nulo antes de agregar tu objeto. ES DECIR:

 -(void)EventList { if (listOfEvents == nil) { listOfEvents = [[NSMutableArray alloc] init]; } [listOfEvents addObject:@"ran"]; NSLog(@"%@",listOfEvents); } 

En Objective-C, los mensajes con tipos de retorno de void enviados a nil van a absolutamente-silent-nowhere-land.

Además, para mantener el equilibrio, asegúrese de tener una [listOfEvents release] en su implementación dealloc .

Aparentemente no estás inicializando tu matriz.

 NSMutableArray *listOfEvents = [[NSMutableArray alloc] init]; 

Si ese es su problema, sugiero leer los documentos nuevamente. Y no los documentos de NSMutableArray. Regrese al lenguaje de progtwigción Objective-C y a otros.

alloc NSMutableArray . Intenta hacer esto primero –

NSMutableArray *listOfEvents = [[NSMutableArray alloc] init];

Después de esto, podrías hacer lo que planeaste …