常见的基本修饰符
2021-03-21 本文已影响0人
落魄的iOS程序员
readwrite 可读可写,会生成setter和getter方法;
readyonly 只读特性,只会生成getter方法,不会生成setter方法,属性外界不能修改;
assign 用于基本数据类型,如int,float,BOOL,double;
retain 表示持有特性,传入对象值先保留再赋值,引用计数会+1;
copy 表赋值特性,setter方法传入对象会被复制一份,应用计数+1;
nonatomic 非原子特性,决定编译器生成setter和getter方法是否原子操作,效率快,属性相对不安全
atomic 原子特性,表示多线程安全,防止读写未完成的时候被另一个线程读写,造成数据错误,效率相对慢,一般无特殊情况都是用nonatomic;
@protected 受保护的,只能在该类或者子类中访问;
@private 私有的,只能在本类中访问;
@public 共有的,任何地方都能访问;
@package 只能在本包里面能访问,跨包不能访问