4.28.29,5.03.04问题总结,主要是封装的子控件的一些问题

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!

在这里总结一些教训,就是看到问题不要着急,一定要多试,从逻辑上找出问题根源,然后要遵循逻辑规范解决问题,可能要麻烦,但是能从根上解决问题,而且可以学到很多东西。之前有时候是小聪明过多,用一些小技巧从表面上解决了问题,但治标不治本,而且对提升帮助较小,这点以后要注意。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容