1.autoreleasePool和autorelease

iOS内存管理原则(配对原则):只要出现了new,alloc,retain,就一定要对应一个release,autorelease。

MRC模式下的两个关注点:

1、避免野指针:对象不再使用时,将它的指针变量赋值为nil。给nil发送任何消息都不会报错;

避免方式:在方法内创建对象时先初始化为nil,Person *p = nil;

2、避免内存泄漏:利用release方法直接释放,利用autorelease方法延迟释放;

2.1、autorelease作用:对象在池中调用autorelease方法后,将对象地址存入池中,并返回self(对象的指针地址),对池内池外创建的对象都有效;

2.2、autorelease应用场景:自定义类工厂方法(类名开头)时,用内部创建的对象调用此方法,再返回(系统提供的类名开头方法返回的都是autorelease对象,所以不会发生也指针错误);

2.3、autoreleasepool作用:池子销毁时,对自己内部对象进行一次release操作(通过操作对象的内存地址);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容