1、readwrite 是可读可写特性,为默认属性,被传入的参数拥有getter和setter方法,
2、readonly 是只读特性,被传入的参数仅拥有getter方法,不会生成setter方法,使用目的:不希望属性在类外被改变;
3、assign 是赋值属性,setter方法将传入的参数赋值给实例变量,不进行任何的tetain操作;
4、retain 表示特有属性,setter方法将传入的参数先进release操作,再将旧值进行retain新值,被传入的参数的引用计数会被+1;
5、copy 表示拷贝特性,setter方法将传入的对象进行拷贝,是为了减少对上下文的依赖而引入的机制;
6、nonatomic , 非原子性访问,不加同步,多线程并发访问可以提高性能;【注意】如果没有该属性,则默认是两个访问方法都是为了原子型事务访问,不加nonatomic对于多线程是安全的;
7、retain 与 copy 的比较
retain: 释放旧的对象,将旧对象的值赋予输入对象,再将该对象的引用计数+1;
copy:建立一个引用计数+1的对象,将旧的对象释放掉。其实就是建立的一个相同的对象,但是retain 不是;
网友评论