谈谈Object-C的内存管理方式及过程?
发布于 2022-09-21 08:53:52
关注者
0
被浏览
22
2 个回答
-
\* 在iOS中,使用 “引用计数” 来管理OC对象的内存 \* 新创建的OC对象,引用计数是1; \* 调用retain会让OC对象的引用计数\+1,调用release会让OC对象的引用计数\-1 \* 当引用计数减为0,OC对象就会销毁,释放占用的内存空间 \* 当调用 alloc、new、copy、mutableCopy 方法返回了一个对象,在不需要这个对象时,要调用release或者aoturelease释放
-
1).当你使用 new,alloc 和 copy 方法创建一个对象时,该对象的保留计数器值为 1.当你不再使用该对象时,你要负责向该对象发送一条 release 或 autorelease 消息.这样,该对象将在使用寿命结束时被销毁. 2).当你通过任何其他方法获得一个对象时,则假设该对象的保留计数器值为 1,而且已经被设置为自动释放,你不需要执行任何操作来确保该对象被清理.如果你打算在一段时间内拥有该对象,则需要保留它并确保在操作完成时释放它. 3).如果你保留了某个对象,你需要(最终)释放或自动释放该对象.必须保持 retain 方法和 release 方法的使用次数相等.