4.28
下午出了个问题,音乐播放器滑动时一直出问题,不知道咋回事,过了零点,才发现是我在模拟器上操作有问题,真操蛋
5.02
有个子view的setFrame方法一直未调用,后来发现是没有初始化
有个新问题,封装后的label显示出现问题
5.03
2016-05-04 01:29:24.897 Man-machine[5463:532182] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ChartMessage_Text copyWithZone:]: unrecognized selector sent to instance 0x7f88407e3e70’
晚上调试出现了这个问题,久久不能解决,5.04凌晨才发现
@property (nonatomic, copy) ChartMessage_Text *chartMessage_Text;是这里写成了copy引起的,要改成@property (nonatomic, strong) ChartMessage_Text *chartMessage_Text;
5.04
自定义的cell和contentView一直出现渲染问题,后来发现是重复渲染导致,原来开始在contentView上添加控件的行为都写在contentView的重写setFrame方法里边,这个方法调用了两次,第一次调用在ChartCell_Huangli *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifer_huangli forIndexPath:indexPath];然后是-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier;在这里创建了一遍子控件,而此时cell还没有数据,除了写死的数据,label上就显示null,第二次在cell.chartCellFrame_Huangli = self.cellFrames[indexPath.row];中得到数据就再次创建了一遍子控件,重复渲染重叠了。
后来改用在ChartContentView_Huangli的-(void)setChartMessage_Huangli:(ChartMessage_Huangli *)chartMessage_Huangli;方法中创建子控件,这里有出现了点小插曲,重写setter方法,忘记了写_chartMessage_Huangli = chartMessage_Huangli;这行代码,导致获取不到数据,这是不应该的,后来改正了,完全解决了问题,perfect!
在这里总结一些教训,就是看到问题不要着急,一定要多试,从逻辑上找出问题根源,然后要遵循逻辑规范解决问题,可能要麻烦,但是能从根上解决问题,而且可以学到很多东西。之前有时候是小聪明过多,用一些小技巧从表面上解决了问题,但治标不治本,而且对提升帮助较小,这点以后要注意。