美文网首页iOS基础篇
iOS基础篇-属性和实例变量

iOS基础篇-属性和实例变量

作者: 麦子_KB | 来源:发表于2017-12-11 13:40 被阅读13次

    属性和实例变量的作用都是声明一个全局的变量,为了当前类中或其他类使用更加方便。

    iOS 5之前使用GCC编译方式申明

    属性:
    @interface MyViewController {
        UIButton *_button;
    }
    @property (strong, nonatomic) UIButton *button; 
    @synthesize button;// button = _button;
    
    @end
    /* GCC下申明属性必须要有对应的实例变量
       @synthesize作用:
       1.让编译器为你自动生成setter与getter方法
       2.可以指定与属性对应的实例变量
       使用synthesize制定属性对应的实例变量时,需要使用self->xxx才能访问对应的实例变量
       @synthesize button = _button 指定的实例变量,要与属性对应的实例变量相同
       否则使用self.button调用,编译器会告诉你,self.button = nil
    */
    

    iOS 5之后,编译器从GCC转换为LLVM(low level virtual machine),使用LLVM(low level virtual machine),此后我们申明属性不在需要对应的实例变量,编译器会帮我们自动设置下划线_button,同时setter与getter方法同样编译器处理。

    @interface MyViewController 
    @property (strong, nonatomic) UIButton *button; 
    @end
    
    /*使用LLVM后,废弃之前的写法*/
    

    相关文章

      网友评论

        本文标题:iOS基础篇-属性和实例变量

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