繁体   English   中英

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

[英]Having problems with adding objects to NSMutableArray

我在将对象添加到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]);

结果:answerArray(1):(空)

NSMutabaleArray从索引0开始

首先,您要过度保留阵列。

其次,您没有提供用于初始化数组的代码,因此我想它没有分配和初始化。 这将导致代码向nil对象发送消息,并因此返回nil。

您应该为Controller对象创建一个init方法,并分配一个新的NSMutableArray对象(并保留它)。

此外,适当dealloc释放阵列。

这是我添加到Controller类的方法:

- (id)init {
    self = [super init];
    if(self){
        array = [[NSMutableArray alloc] init];
    }
    return self;
}
- (void)dealloc {
    [array release];
    [super dealloc];
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM