美文网首页
2019-01-05

2019-01-05

作者: 薛定谔的汪汪 | 来源:发表于2019-01-11 10:28 被阅读0次

    (1)屏幕尺寸与模拟器尺寸

    设备与尺寸
     当前设置屏幕尺寸
     CGFloat screenW = [UIScreen mainScreen].bounds.size.width;
     CGFloat screenH = [UIScreen mainScreen].bounds.size.height;
     NSLog(@"screenW:%f,screenH:%f",screenW,screenH);
    
     控制器View的尺寸
     CGFloat width = self.view.frame.size.width;
     CGFloat height = self.view.frame.size.height;
     NSLog(@"viewW=:%f,viewH=:%f",width,height);
     
     控制器View上子视图titleScrollView(基于AutoLayout)的尺寸
     CGFloat scrollViewW = self.titleScrollView.frame.size.width;
     CGFloat scrollViewH = self.titleScrollView.frame.size.height;
     NSLog(@"scrollW:%f,scrollH:%f",scrollViewW,scrollViewH);
    
    运行结果

    Q:AutoLayout约束下,titleScrollView为什么不随控制器View尺寸的变化而变化?又为什么随预览模式的变化而变化?(2)给出了回答。


    更改预览模式下的view

    (2)viewDidLoad: 当控制器View加载完毕时调用

    我们经常会在这个方法里面手动做一些控件的初始化操作,其中可能会给一些控件设置尺寸位置,但是需要注意的是在这个方法内【只能参照】控制器的view的尺寸,不能参照其他子控件的尺寸!因为该方法的调用仅仅表明了控制器view的加载完成(即有了真实的尺寸),在快要显示view时(viewWillAppear)查看有无通过xib/storyboard创建的子控件;而通过xib/storyboard创建的子view此时还未加载!子view的加载是在viewWillLayoutSubviewsviewDidLayoutSubviews中完成的,此后才会执行viewDidAppear方法。实验得知,在viewDidAppear中拿到了子控件的真实尺寸。

    四个方法的执行顺序
    - (void)viewDidLoad {
        [super viewDidLoad];
        // 
    }
    

    (3)引用计数器

    局部对象

    (4)self.label2_label2的区别:

    通过成员变量直接持有
    通过set方法持有

    strong关键字修饰属性时,可以【持有(指的是引用计数增加)】被赋值进来的对象,而成员变量得到对象的地址后却不能【持有】对象,只能【访问】对象,说明set方法内部实现不仅仅是_label = label;这么简单!

    全局对象(1)

    由此可见,对于局部对象,引用计数一旦为0,则对象会被立即“隔离”起来,拒绝接受访问。

    全局对象(2)

    由此可见,当对象的引用计数为0时,对象本身被隔离了起来,不接受外界访问。但此时指针的值还在(不为nil),于是成为了野指针。

    全局对象(3)
    预测失败表明,指针赋值并不会导致对象的引用计数增加!只是增加了一个访问的“途径”而已。所以,当一个对像的引用计数为0的时候,可能会存在多个“野指针”,有些指针会被自动置为nil(比如weak指针),有些不会(比如assign指针)。 “假引用”(1)

    综上所述:
    (1)将子控件添加进父控件中时,子控件的引用计数加1;
    (2)用全局的成员变量“接收”一个局部子控件时,不会导致子控件的引用计数加1,只是增多了一个访问对象的【途径】;
    通过strong属性的set方法“接收”一个局部子控件时,会导致子控件的引用计数加1【途径】;
    (3)一个对像可能同时会有多个指针指向它,当该对象的引用计数器为0时,一些指针会被自动置为nil(比如weak型指针),一些指针不会被自动置为nil的(比如assign指针、“假引用”指针:全局的成员变量型指针等)指针成为了“野指针”;

    相关文章

      网友评论

          本文标题:2019-01-05

          本文链接:https://www.haomeiwen.com/subject/twkrrqtx.html