如何从方法返回NSMutableArray

时间:2013-04-08 03:21:07

标签: ios nsmutablearray nsobject

我在NSObject类中有一个方法,我从另一个ViewController类执行,我想重新编译NSMutableArray但是我不知道如何将它传递给ViewController类中的变量。

更新代码:

NSObject类称为Axis

Axis.h //在这里声明我的方法,返回类型为NSMutableArray

- (NSMutableArray *)assignAxes:(NSArray*)axesData;

Axis.m

- (NSMutableArray *)assignAxes:(NSArray*)axesData {
//..

//pass some NSDictionaries into a MutableArray called myMutableArray

return myMutableArray;
}

现在我有一个名为FinalViewViewController的View Controller,我想从这个viewController调用assignAxes方法,我想把返回的myMutableArray放入FinalViewViewController中的mutableArray变量,但我不知道怎么...我只知道如何调用方法不将返回值传递给要使用的变量。

FinalViewViewController.m

Axis *axis = [[Axis alloc] init];
    NSMutableArray *tempGetSeriesObjArray = [[NSMutableArray alloc] init]; // create holder variable for returning mutableArray
    tempGetSeriesObjArray = [axis assignAxes:series]; // gives an error

这是我从最后一行代码中得到的错误

Incompatible pointer types assigning to 'NSMutableArray *__strong' from 'Axis *'

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

在您的NSObject类中,首先进入.h文件并声明数组并设置属性

@interface YourNSObjectClass : NSObject {
    NSMutableArray *_myArray;
}

@property (nonatomic, retain) NSMutableArray *_myArray;

- (NSMutableArray *) getMyArray; // declare method

@end

所以现在,你必须同步你的变量并在initMethod中初始化它 - 如果你有一个自定义的init方法,你必须声明它并将它放在那里。

@synthesize _myArray;

- (id) init {
     if(self = [super init]) {
           _myArray = [[NSMutableArray alloc] init];
     }
     return self;
}

getter-method也应该起作用

- (NSMutableArray *) getMyArray {
    return _myArray;
}