一.内存管理情况

1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象。当用户的代码运行告一段落,开始等待用户的操作,自动释放池就会被释放掉(调用dealloc),池中的对象都会收到一个release,有可能会因此被销毁。
2-成员属性:
    readonly:不指定readonly,默认合成getter和setter方法。外界毫不关心的成员,则不要设置任何属性,这样封装能增加代码的独立性和安全性。相当于私有成员?
    assign:表示只进行简单的赋值,不会发送retain消息。
    retain:会向旧值发送release消息,向新值发送retain消息。
    copy:向旧值发release消息,向新值发送copy消息。
3-引用计数特殊情况
    NSArray:当把一个对象添加到NSArray时,对象的引用计数会加1,移除时会减1。

    UIView:addGestureRecognizer会对手势识别器的引用计数加1,removeGestureRecognizer会减1。


1)readwrite:是可读可写特性;同时生成get方法和set方法的声明和实现

2)readonly:是只读特性;只生成get方法的声明和实现

3)assign:是赋值特性;set方法的实现是直接赋值,用于基本数据类型

4)retain:表示持有特性;set方法的实现是release旧值,retain新值,用于OC对象类型

5)copy:表示赋值特性;set方法的实现是release旧值,copy新值,用于NSString、block等类型

6)nonatomic:非原子性,set方法的实现不加锁(比atomic性能高)决定编译器生成的setter getter是否是原子操作,atomic表示多线程安全,一般使用nonatomic


3-引用计数特殊情况
    NSArray:当把一个对象添加到NSArray时,对象的引用计数会加1,移除时会减1。
    UIView:addGestureRecognizer会对手势识别器的引用计数加1,removeGestureRecognizer会减1。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值