什么是ARC?
ARC(automatic reference counting)及为自动引用计数,启动ARC功能之后编译器会自动为代码加入retain和release,实现自动内存管理。
实现ARC的要求
要实现ARC,要注意以下问题:
1. 要进行管理的对象必须继承自NSObject,即对象不能为C语言中的数据类型。
2. 确保对象为弱引用来避免循环调用造成内存泄露。(当手动对对象进行管理时,就拥有了该对象的强引用,强引用在发生循环调用时不会释放资源)
3. 对非保留对象指针进行内存管理操作时,需要通过桥接转换来转换所有权。
4. 结构体和几何体不能使用ROP作为成员可以通过一下代码实现:
~
//错误操作:
struct {
int32_t foo;
char *bar;
NSString *baz;
} MyStruct
//正确操作:
struct {
int32_t foo;
char bar *bar;
void *baz;
}
MyStruct.baz = (__bridge_retained void *)theString;
NSString myString = (__bridge_transfer NSString )MyStruct.baz
ARC自动引用计数详解
本文介绍了ARC(自动引用计数)的概念及其在内存管理中的应用。ARC是一种编译器特性,可以自动处理对象的引用计数,从而简化内存管理。文章详细说明了ARC的工作原理,并列举了实现ARC需要注意的问题。
810

被折叠的 条评论
为什么被折叠?



