Having problems with adding objects to NSMutableArray

萝らか妹 提交于 2019-12-02 21:26:21

问题


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)


回答1:


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.




回答2:


NSMutabaleArray starts at index 0




回答3:


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


来源:https://stackoverflow.com/questions/4716876/having-problems-with-adding-objects-to-nsmutablearray

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!