在下面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;
}
由于
答案 0 :(得分:1)
你如何填充你的sectionNames数组?数组而不是字符串可能会过早释放。
<强>更新强>
您的问题是+arrayWithArray:
创建了一个自动释放的数组,当当前运行循环结束时会释放该数组。您需要保留sectionNames或使用-initWithArray: