iOS开发 App在 release模式下懒加载不显示问题

2018-07-18  本文已影响294人  合欢猪

问题

release模式下打包app,发现app 中凡是使用懒加载的地方UIKit控件都不显示,但debug模式下正常

采用的懒加载声明方式:@property(nonatomic,weak) xxx

注意此处用的是weak方式懒加载,strong下不会出现比问题

原因

懒加载一般都是strong修饰,用strong修饰的话就不存在这个问题了,本文可直接跳过。

但也有小伙伴喜欢用weak修饰,这就需要在使用时注意了,也是本文写作的重点:如果是weak修饰,在创建对象的时候一定不要直接赋值,而应该先创建一个强引用对象,再将强引用对象赋值给weak,因为如果直接赋值,Realease模式下会立即释放,但Debug模式下因为延时释放,所以就出现了在Debug模式下UIKit控件存在,Release模式下控件不显示问题,因为Release模式下控件已经被释放了,下面这种写法是错误的:

错误写法

解决方案

创建一个强引用对象,再将该对象赋值给weak

创建一个强引用对象 将强引用对象赋值给weak

总结

开发过程中一般都是用Debug环境,因为它能输出很多测试信息,便于程序员调试,但正是上线的版本一般都是Release,因为它对App做了多方优化,也正是因为这样,在进行测试的时候一定要用Release版本,不仅因为这是将来用户直接接触的版本,而且可能会有意想不到的Bug发生。

上一篇 下一篇

猜你喜欢

热点阅读