Vengo de un fondo de Java y estoy aprendiendo Objective C. Estoy intentando crear una clase que tenga una matriz de cadenas y una función miembro para modificar la matriz. Mi código se veía así:¿Cómo inicializar un NSMutableArray en Objective C?
@implementation TAWChapter
@synthesize mSubject;
@synthesize mItems;
- (id) init{
self.mItems = [[NSMutableArray alloc] init];
return self;
}
- (void) setSubject:(NSString *)subject{
self.mSubject = subject;
}
- (void) addItem:(NSString *)item{
[self.mItems addObject:@"asdf"];
}
@end
los cuales no funcionaba. Obtuve un "[__NSArrayI addObject:]: unrecognized selector sent to instance "
y un "NSInvalidArgumentException"
. Después de buscar en Internet, cambié la línea individual en el constructor a:
self.mItems = [self.mItems init];
Funcionó, pero ¿por qué? Desde el punto de vista de un desarrollador de Java, el primero tiene más sentido que el segundo. Y tengo otra línea, es la misma que la primera, pero está funcionando (no en un constructor). ¿Alguien me puede explicar esto por favor?
Las respuestas probablemente han abordado la cuestión, pero no podemos estar seguros hasta que veamos la declaración de la propiedad 'mItems'. –