用instruments做代码的静态分析时:
第一行的分析结果是:Value stored to 'recordView' during its initialization is never read
JoinRecordHeaderView *recordView = [tableViewdequeueReusableHeaderFooterViewWithIdentifier:@"JoinRecordHeaderView"];
recordView = [[[NSBundlemainBundle] loadNibNamed:@"JoinRecordHeaderView"owner:selfoptions:nil]firstObject];
recordView.date =_joinSectionHeaderTitleAry[section -3];
有点诧异,什么叫“recordView存储的值在初始化过程中不会被读取”!
后来发现原来是没重用好,正确的代码应该是:
JoinRecordHeaderView *recordView = [tableViewdequeueReusableHeaderFooterViewWithIdentifier:@"JoinRecordHeaderView"];
if (!recordView) {
recordView = [[[NSBundlemainBundle] loadNibNamed:@"JoinRecordHeaderView"owner:selfoptions:nil]firstObject];
recordView.date =_joinSectionHeaderTitleAry[section -3];
}
如果不用instruments分析,真不敢想象写出这么丢人的代码!
回到主题上来,没重用好,导致每次都重新加载并重新初始化recordView,导致instruments有这样的分析结果,这样的结果都能分析出来,instruments真是厉害的工具。