I am having problem with adding objects to NSMutableArray *array.
// Controller.m
#import "Controller.h"
@implementation Controller
- (void)parser:(NSString *)string{
[array addObject:string];
NSLog(@"answerArray(1): %@",[array objectAtIndex:1]);
[array retain];
}
@end
// Controller.h
#import <Foundation/Foundation.h>
@interface Controller : NSObject {
NSMutableArray *array;
}
- (void)parser:(NSString *)string;
@end
NSLog(@"answerArray(1): %@",[array objectAtIndex:1]);
Results: answerArray(1): (null)
First off, you're over-retaining the array.
Second, you didn't provide the code for initializing the array, so I guess it's not allocated and initialized. This will cause the code to message a nil object and thus return nil.
You should create an init
method for the Controller
object, and allocate a new NSMutableArray
object (and retain it).
Also, a proper dealloc
to release the array.
NSMutabaleArray starts at index 0
Here is the method I added to Controller class:
- (id)init {
self = [super init];
if(self){
array = [[NSMutableArray alloc] init];
}
return self;
}
- (void)dealloc {
[array release];
[super dealloc];
}