wangqiuwei07的专栏

ios小白一枚

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

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

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


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

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

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

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

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

    __weakIBOutlet UIButton *forceUpdateButton;
    __strongIBOutlet UIScrollView *scrollerLook;
    NSMutableArray *pathPhoto;
    UIScrollView *downPhotoScroller;
}
@end

@implementation JTreatIpadLookViewController


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

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

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


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


 


阅读更多
个人分类: iOS开发
上一篇使用MJRefreshFooter引起的tableview第一行无法选中的问题
下一篇xcode SVN 上传代码只能用SVN client 或者SVN 命令行
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭