关于@property和@synthesize
2016-03-08 11:55
204 查看
参数分为三种:
第一种:读写属性包括(readonly / readwrite)
第二种:setter属性(assign,copy,retain),assign是简单赋值,copy是释放旧成员变量,并新分配内存规划给成员变量,讲传入参数内容复制一份,给成员变量。retain是讲传入参数引用计数加1,然后将原有成员变量释放,在将成员变量指向该传入参数。
第三种:与多线程有关(atomic,nonatomic),当使用多线程时,使用atomic,在不使用多线程时使用nonatomic
对象创建于初始化
在object-C中创建对象两种方法,一种是【类 new】另一种是【【类 alloc】 init】,这两种方法是等价的,但按惯例来讲使用【[类 alloc】init]
alloc操作是为对象分配内存空间,,并将对象的数据成员都初始化,int为0,BOOL位NO,float为0.0等。
初始化时,默认的初始化函数为init,init返回值为id,为什么返回id呢,因为要实现链式表达式,在objectIve-c中叫做嵌套调用。
第一种:读写属性包括(readonly / readwrite)
第二种:setter属性(assign,copy,retain),assign是简单赋值,copy是释放旧成员变量,并新分配内存规划给成员变量,讲传入参数内容复制一份,给成员变量。retain是讲传入参数引用计数加1,然后将原有成员变量释放,在将成员变量指向该传入参数。
第三种:与多线程有关(atomic,nonatomic),当使用多线程时,使用atomic,在不使用多线程时使用nonatomic
对象创建于初始化
在object-C中创建对象两种方法,一种是【类 new】另一种是【【类 alloc】 init】,这两种方法是等价的,但按惯例来讲使用【[类 alloc】init]
alloc操作是为对象分配内存空间,,并将对象的数据成员都初始化,int为0,BOOL位NO,float为0.0等。
初始化时,默认的初始化函数为init,init返回值为id,为什么返回id呢,因为要实现链式表达式,在objectIve-c中叫做嵌套调用。
相关文章推荐
- 详解Linux系统中的进程初始化配置文件inittab
- web网站架构演变过程
- @property中有哪些属性关键字?/ @property 后面可以有哪些修饰符?
- curl_setopt 函数参数中文详解
- 对nginx服务器进行日志分析并且封IP
- hadoop集群远程拷贝数据
- nginx接收的host值会影响alias的规则匹配
- Tomcat7+ 启动慢的问题解决
- 4.10 MediaPlayer.stop() 后 如何再次调用start()?
- shell脚本批量ping测试IP是否通
- WWW和WAP的信息流程有什么区别
- shell、cmd、DOS、python、php区别
- 求贤若渴(Java架构师、技术专家)
- @protocol 和 category 中如何使用 @property
- docker环境下的测试
- Nginx负载均衡配置实例详解
- 同步原语,无共享架构
- OpenCV图像质量评价的SSIM算法(图像相似度)
- Vs2012在Linux开发中的应用(5):项目属性的定义
- CentOS6.5禁用IPv6