将对象添加到NSMutableArray时遇到问题

时间:2011-01-17 19:12:38

标签: objective-c class nsmutablearray

我在向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)

3 个答案:

答案 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];
}