ARC 简短介绍

ARC

ARC 是一种编译器特性!而不是IOS运行时特性,和JAVA中得垃圾回收机制完全不一样

ARC是自iOS 5之后增加的新特性,完全消除了手动管理内存的烦琐,编译器会自动在适当的地方插入适当的retain、release、autorelease语句。你不再需要担心内存管理,因为编译器为你处理了一切

ARC规则:只要还有一个强指针变量指向对象,对象就会保持在内存中

弱指针指向的对象被回收后,弱指针会自动变为nil指针,不会引发野指针错误

使用注意:

1、不允许调用release、retain、retainCount;

2、允许重写dello方法,但是重写dello方法中不允许[super delloc];

3、@property参数:

strong :代表创建的 _成员变量 是一个强指针,类似于原来的retain,(适用于OC对象)

weak   :代表创建的 _成员变量 是一个若指针,类似于原来的assgin,(适用于OC对象)

assign :这个适用于非OC对象,比如 int型、long型等等

4、以前的retain要改为strong

5、假如出现循环引用的用法,那么就要一端用strong一端用weak

例如:一条狗有一个主人,一个主人有一条狗!

@interface Dog : NSObject
@property (nonatomic,weak) Person *person; // 狗拥有一个主人对象,这个指针是一个弱指针,
@end

@implementation Dog
@end

@interface Person : NSObject
@property (nonatomic,strong) Dog *dog;    // 人拥有一个狗对象,这个指针是一个强指针,
@end

@implementation Person
@end


转载于:https://my.oschina.net/u/1405062/blog/387014

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值