OC基础-内存管理-ARC+weak

<1>内存管理--ARC(automatic reference counting)
1. ARC是编译器的一个特性(编译器检测到有retain/alloc 等 这些关键字,就会自动的加入相应的release/autorelease等 )
2. ARC的判断准则:只要没有强指针指向对象,就会释放对象(即使有弱指针指向对象,该对象也会被回收/销毁)

3. ARC特点:
    1> 不允许调用release/retain/retainCount
    2> 允许重写dealloc方法,但是不允许调用[super dealloc]
    3> @property的参数
    * strong : 成员变量是强指针(适用于OC对象类型)------使用ARC后,改为:@property (nonatomic, strong) NSString *name;  // Dog *name; Person *person;
    * weak : 成员变量是弱指针(适用于OC对象)
    * assign : 适用于非OC对象类型
    4> 以前的retain改为strong(使用ARC机制后)

4. OC的指针分两种:强指针和弱指针
    1> 强指针:默认情况下,所有的指针都是强指针  __strong  (两个下划线)
    2> 弱指针:__weak  (两个下划线)


<2>内存管理--Xcode的ARC转换(Xcode的一些功能)
1. 非ARC转ARC(使非ARC项目文件转成ARC项目文件)
Edit —> Refactor —> Convert to Objective-C ARC

2. 怎么查看项目是不是ARC
点击项目 —> Build Setting

3. 也可以部分文件使用ARC,部分文件不使用ARC
-fno-objc-arc  // 不使用ARC
-f-objc-arc   // 使用ARC
怎么修改? 点击项目 —> Build Phases —> Compile Sources —> 使用上面两条命令修改


<3>内存管理--weak的使用/作用
weak的使用场景:当涉及到循环引用时,应该一端使用strong,一端使用weak。如果两端都适用strong,那么最后会有内存泄漏(对象无法被回收),如果两端都使用weak,则对象刚创建就被回收,刚创建就被回收(无意义)







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值