我在向NSMutableArray *数组添加对象时遇到问题。
// 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]);
结果:answerArray(1):( null)
答案 0 :(得分:1)
NSMutabaleArray从索引0开始
答案 1 :(得分:1)
首先,你过度保留阵列。
其次,你没有提供初始化数组的代码,所以我猜它没有分配和初始化。这将导致代码发送一个nil对象,从而返回nil。
您应该为init
对象创建一个Controller
方法,并分配一个新的NSMutableArray
对象(并保留它)。
此外,还有一个适当的dealloc
来释放数组。
答案 2 :(得分:0)
这是我添加到Controller类的方法:
- (id)init {
self = [super init];
if(self){
array = [[NSMutableArray alloc] init];
}
return self;
}
- (void)dealloc {
[array release];
[super dealloc];
}