iOS14 weak 声明属性控件的坑

iOS14 weak 属性导致的问题

之前做SDK的时候,不知道什么原因声明了两个按钮用到了weak属性来声明了。声明如下:

@property (nonatomic,weak)UIButton *loginBtn;
@property (nonatomic, weak)UIButton *signUpBtn;

这样声明在iOS14之前的系统版本都没有问题,但是在最进适配iOS14 的收发现UI里两个按钮出不来了无法显示。UI变成这样:


image.png

在iOS14之前是这样的:


image.png

仔细想了下原因,大概是在iOS14中,对hidden 的视图中weak属性进行了释放,导致声明的loginBtn 被销毁了。等再显示出来的时候,这个weak声明的按钮已经被销毁了所以无法显示了。因为我写的这个界面是有自动登录的,首先去隐藏改视图,如果满足自动登录的逻辑则走自动登录逻辑。否则显示登录界面UI。当然现在还是测试版本的系统,不知道正式系统出来会不会解决这个问题,如果还是一样则需要进行适配和处理了。处理方式可以直接设置为strong 或则赋值给一个强应用属性, 谨此记录一下~

你可能感兴趣的:(iOS14 weak 声明属性控件的坑)