UITableView titleForHeaderInSection将标题打印到控制台两次然后崩溃

时间:2010-03-30 20:34:02

标签: objective-c uitableview iphone-sdk-3.0

在下面titleForHeaderInSection的方法中,由于某种原因,NSLog打印出两次标题,然后应用程序在objc_msgSend中崩溃。我不明白为什么这会导致应用程序崩溃?

从研究中可以看出,objc_msgSend中的崩溃是通过向已经释放的对象发送消息引起的,但这就是这种情况吗?

我的sectionNames数组填充在viewDidLoad中。

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {   

    NSString *title = nil;
    title=[sectionNames objectAtIndex:section];
    NSLog(title);
    return title;
}

由于

1 个答案:

答案 0 :(得分:1)

你如何填充你的sectionNames数组?数组而不是字符串可能会过早释放。

<强>更新

您的问题是+arrayWithArray:创建了一个自动释放的数组,当当前运行循环结束时会释放该数组。您需要保留sectionNames或使用-initWithArray: