属性

作者: 大侠走一波 | 来源:发表于2016-04-07 20:08 被阅读34次
    属性,其实就是帮你生成一个实例变量和其对应的set、get方法。如果你写在.h文件中呢,外部就可以调用这个属性,写在.m文件的 『延展』 里面,外部就无法调用这个属性
    @property NSString *name;
    
              || 等价于
     -(void)setName:(NSString *)name;
     -(NSString *)Name;
     NSString *name;
    

    .m文件@synthesize (可以省略)
    @synthesize 属性名称 = 实例变量名 自动产生一个实例变量,且只有当前文件可
    以看到 可见度为private
    @synthesize name = _name,age = _age, sex = _sex,height = _height;
    在 ios5.0后,@synthesize也可以省略不写,此时在. h 文件中只写@ property 即可,
    编译器(Xcode)会自动生成相应的实例变量,实例变量的名字是属性名称前加下划线
    如果是省略synthesize,不可以重写set和get方法,因为重写set和get的时候,@property不会自动生成对应的实例变量

    在我们使用属性的时候呢,我们会有一些转悠的修饰词,对属性进行修饰 ,称之为属性的特征。

    @property( 特征 )属性类型 属性名称
    每一大特征都必须有,多个特征之间用逗号隔开
    一、读写性特征
    可读可写:readwrite 产生set和get方法 默认
    只读:readonly 只产生get方法
    二、原子性特征
    原子性:atomic 在多线程程序下访问设置是安全的 默认
    非原子性:nonatomic 多线程不安全,没有线程管理机制
    三、语义型特征
    assign: 用来修饰普通数据类型,不进行特殊的内存管理 默认
    retain: 用来修饰对象,对属性进行内存管理
    copy:复制一份副本

    .点运算

    利用点运算访问对应的的属性 .属性
    使用.运算 就是set和get方法

    stu.name = "猪八戒";      //set
    NSLog(@"%@",stu.name);  //get
    

    相关文章

      网友评论

        本文标题:属性

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