NSmutablearray在xib viewcontroller中返回null:iphone objective C

时间:2010-02-06 07:43:48

标签: objective-c nsmutablearray uitableview

我有一个根视图控制器,我正在添加一个子视图控制器。

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

2 个答案:

答案 0 :(得分:0)

-count返回一个整数,而不是ObjC对象,因此不应该使用%@对其进行格式化。请改用%d

NSLog(@"list: %d",[movieController.list count]); //<<<<

答案 1 :(得分:0)

您正在-viewDidLoad方法中初始化 list 属性,但在加载视图之前不会调用此方法。由于未调用-viewDidLoad方法,因此在添加对象时 list 仍未初始化,如下所示,

[movieController.list addObject:[dictionary objectForKey:key]];

我建议您初始化初始化程序中的 list 属性,以便在添加对象时初始化列表。