我有一个根视图控制器,我正在添加一个子视图控制器。
Rootviewcontroller:我正在尝试将字典中的值添加为moviewController.list
NSMutableArray
的唯一成员。然而它没有被添加,NSlog告诉我“list: (null)
”
for (id key in dictionary) {
MovieController *movieController = [[MovieController alloc] initWithStyle:UITableViewStylePlain];
movieController.title = key;
[movieController.list addObject:[dictionary objectForKey:key]];
NSLog(@"list: %@",[movieController.list count]); //<<<<
[array addObject:movieController];
[movieController release];
}
在subviewcontroller(MovieController)中的我创建了用于在表中显示项目的列表:
- (void)viewDidLoad {
NSMutableArray *array = [[NSMutableArray alloc] init];
self.list = array;
[array release];
[super viewDidLoad];
}
为什么我不能在rootviewcontroller中添加对象?我可以在MovieController中显示列表的唯一方法是在实例化时initWithObjects
。
此致
Sapatos
答案 0 :(得分:0)
-count
返回一个整数,而不是ObjC对象,因此不应该使用%@
对其进行格式化。请改用%d
:
NSLog(@"list: %d",[movieController.list count]); //<<<<
答案 1 :(得分:0)
您正在-viewDidLoad方法中初始化 list 属性,但在加载视图之前不会调用此方法。由于未调用-viewDidLoad方法,因此在添加对象时 list 仍未初始化,如下所示,
[movieController.list addObject:[dictionary objectForKey:key]];
我建议您初始化初始化程序中的 list 属性,以便在添加对象时初始化列表。