我是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。
答案 0 :(得分:2)
与Till建议的第一条评论一样,Data
必须在调用setMasterList
之前初始化。如:
Data = [[DataController alloc] init];
[Data setMasterList: self.array];