@property参数

作者: 越天高 | 来源:发表于2019-02-25 09:40 被阅读0次
  • 1.相同类型的property修饰符不能同时使用
    2.不同类型的property修饰符可以多个结合在一起使用, 多个之间用,号隔开
    3.iOS开发中只要写上property, 那么就立刻写上nonatomic

1.控制set方法的内存管理

  • retain : release旧值,retain新值(用于OC对象)会在set方法中做内存管理的代码
{
    // 只有房间不同才需用release和retain
    if (_room != room) {// 0ffe1 != 0ffe1
        
        // 将以前的房间释放掉 -1
        [_room release];
        
        /*
        // 对房间的引用计数器+1
        [room retain];
        
        _room = room;
         */
        // retain不仅仅会对引用计数器+1, 而且还会返回当前对象
        _room = [room retain];
    }
}

assign : 直接赋值,不做任何内存管理(默认,用于非OC对象类型)
不会帮我们生成set方法内存管理的代码, 仅仅只会生成普通的getter/setter方法, 默认什么都不写就是assign
copy : release旧值,copy新值(一般用于NSString *)

2.控制需不需要生成set方法

  • readwrite :同时生成set方法和get方法(默认)
    readonly :只会生成get方法

3.多线程管理

  • atomic :性能低(默认)
    nonatomic :性能高

4.控制set方法和get方法的名称

  • setter : 设置set方法的名称,一定有个冒号:
    getter : 设置get方法的名称
    注意: 不同类型的参数可以组合在一起使用

相关文章

网友评论

    本文标题:@property参数

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