关闭

iOS中从加载的xib中得到的控件为空的问题

2396人阅读 评论(0) 收藏 举报
分类:

 jTreatIpadLookViewController=[[JTreatIpadLookViewController alloc]initWithNibName:@"JTreatIpadLookViewController" bundle:nil];

这是我加载xib的方式,,但是我打印其中的button总是为空,,其他的控件也是这种情况:


我经历了几个痛苦的过程,

1.首先我测试了一下,在autolayout  和sizeClass下不同的情况,因为网上有人说sizeClass可能引起这种情况,,但是没有解决,,

2.我测试了iOS 的不同版本,,问题出现了,,在iOS9中,,没有这种问题,,而是只在iOS8才会出现(郁闷,,不能跟客户说,叫他升级吧)所以发现问题基本没什么用,,

3.。我静静的观察代码,想了一下,,为什么会出现这种情况,,我知道的只有两种情况 (1.没有初始化,2.就是控件被释放了)


@interface JTreatIpadLookViewController ()<UIScrollViewDelegate,UICollectionViewDelegate,UICollectionViewDataSource>

{


    __weak IBOutlet UIButton *forceUpdateButton;

    __strong IBOutlet UIScrollView *scrollerLook;

    NSMutableArray *pathPhoto;

    UIScrollView *downPhotoScroller;

}

@end


@implementation JTreatIpadLookViewController

发现了一点问题,,我在interface中拖来的xib控件,,看到了都是__weak突然想到是不是__weak的原因,,所以我吧他改成了__strong 类型的,bingo,,问题解决了,,

但是为什么会出现这种请情况,,因为我们用了ARC以后内存释放的问题基本不会出现了,,

最后在build setting里面发现这个文件居然用了MRC模式,,气死我了,,


所以问题找到了,在iOS8出现这种请情况,,看看你的文件是不是用了MRC模式,造成了提前释放控件


 


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:25274次
    • 积分:595
    • 等级:
    • 排名:千里之外
    • 原创:26篇
    • 转载:63篇
    • 译文:0篇
    • 评论:0条
    文章分类