将数组传递给NSObject类

时间:2013-05-18 02:45:40

标签: ios objective-c

我是iphone应用程序开发的新手,我遇到了这个我正在尝试开发的应用程序的问题。

我有一个用于填充tableview的datacontroller。我使用本教程创建了它: About Creating Your Second iOS App

我正在尝试从我的一个jCon响应创建的viewcontroller中传递一个数组。

以下是我的viewcontroller.h中需要传递数组的一些代码:

@interface ViewController : UIViewController

@property (nonatomic, retain) DataController *Data;
@property (nonatomic, retain) NSMutableArray *array;
@end

viewcontroller.m:

  #import "DataController.h"
    [Data setMasterList: self.array];

DataController.h:

@interface DataController : NSObject

@property (nonatomic, strong) NSMutableArray *masterList;

- (void)setMasterList:(NSMutableArray *)newList;
@end

DataController.m

#import "LoginViewController.h"

    - (void)setMasterList:(NSMutableArray *)newList {
          if (_masterList != newList) {
              _masterList = [newList mutableCopy];
          NSLog("List: %@", newList);


             }
          }

NSLog消息永远不会出现在控制台中,并且数组是nil。

感谢任何帮助。

感谢。

编辑:

这是更新后的viewcontroller.m:

Data = [[DataController alloc] init];
[Data setMasterList: self.array];

datacontroller.m:

- (void)setMasterList:(NSMutableArray *)newList {
      if (_masterList != newList) {
          _masterList = [newList mutableCopy];
      NSLog("List: %@", self.masterList);


         }
}

- (NSUInteger)countOfList {
    NSLog("List: %@", self.masterList);
    return [self.masterList count];
}

setMasterList中的第一个nslog返回正确的数组值,但countOfList中的第二个nslog返回null。该列表始​​终在setMasterList之外的任何位置返回null。是因为我正在创建一个DataController的新实例吗?如果是这样,我怎么能将数组传递给datacontroller。

1 个答案:

答案 0 :(得分:2)

与Till建议的第一条评论一样,Data必须在调用setMasterList之前初始化。如:

Data = [[DataController alloc] init];
[Data setMasterList: self.array];