今天碰到一个特坑爹的问题.
在使用自己写的一个channelScrollView库的时候.在每次进入下面这个循环的时候.就会崩溃
- (void)setTitleArray:(NSArray<NSString *> *)titleArray {
_titleArray = titleArray;
NSMutableArray *arrayM = [NSMutableArray array];
for (int i = 0; i < titleArray.count; i++) {//每次进入这个循环就会崩溃
ZCHChannelButton *btn = [ZCHChannelButton zch_ButtonWithTitle:titleArray[i] normalFont:self.font normalColor:self.normalColor selectedColor:self.selectedColor];
_twigView.backgroundColor = self.selectedColor;
btn.tag = i;
[btn sizeToFit];
[arrayM addObject:btn];
}
self.buttonArray = arrayM.copy;
}
首先.Debug的运行环境和Release不一样.Release做了一些底层的优化.为了使运行更加”流畅”.而Debug模式拥有许多Release模式没有的调试”功能”.关注点为,在问题没暴露给线上版本的时候就让程序员完美解决掉.
那么,我项目每次在这里崩溃(程序并没有什么问题).而且不是在容易暴露出问题的Debug模式,而是Release模式.那么可能是Release的某个设置导致的.
经过一通查询,发现把这个Release优化改成None就可以避免这个问题了.