1

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

我有一个用于填充表格视图的数据控制器。我使用本教程创建了它: 关于创建您的第二个 iOS 应用程序

我正在尝试从我的一个视图控制器传递一个数组,该数组是从 JSON 响应创建的。

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

@interface ViewController : UIViewController

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

视图控制器.m:

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

数据控制器.h:

@interface DataController : NSObject

@property (nonatomic, strong) NSMutableArray *masterList;

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

数据控制器.m

#import "LoginViewController.h"

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


             }
          }

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

任何帮助表示赞赏。

谢谢。

编辑:

这是更新后的 viewcontroller.m:

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

数据控制器.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 的新实例吗?如果是这样,我怎么能将数组传递给数据控制器。

4

1 回答 1

2

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

Data = [[DataController alloc] init];
[Data setMasterList: self.array];
于 2013-05-18T05:49:54.150 回答