![]() |
1
5
RETAIN/RELEASE仅适用于对象,而不适用于int、bool、float、double或其他内置项。所以用它来
您需要处理任何本地对象
如果有一个静态变量指向一个对象,那么当释放该类的对象时,它不会被触碰。如果你想释放它,你必须调用释放。如果静态是in t、bool或其他内置的,则不能(不能)对其调用release。这是应用程序全局内存的一部分。 设置为字符串文本的nsstring不应调用release。对他们来说,重新计算是毫无意义的。对于有符号的int值,该值也是-1。
如果你这样做--
是的,这很重要。随着时间的推移,漏洞会导致iPhone扼杀你的应用程序。 |
![]() |
2
2
我不知道你具体读哪本指南,但如果你没有给 this one 试试看,我强烈推荐。它以简洁和直接的方式总结了这三个准则。 |
![]() |
3
2
cocoa内存管理规则只覆盖目标C对象。 当任何子例程或方法退出时,局部变量(非静态)将被清除(实际上堆栈内存只是被同一线程中的后续子例程或方法重用/覆盖)。需要内存(字符串)和静态变量的常量在应用程序退出后被操作系统删除时会被清除。当您手动释放malloc的内存时,它会被清除。 但是,您分配或保留的任何对象(无论是分配给IVAR、本地、全局、静态等)都必须像其他对象一样进行管理。小心地将对象分配给全局变量,除非您真正擅长保留计数管理。 |
![]() |
Martin sku · 在目标C中打印时间 2 年前 |
![]() |
Vinod prajapat · 如何更新数组的最后一个元素? 2 年前 |
![]() |
subin272 · 修复iOS中的多个按钮单击事件? 6 年前 |
![]() |
James Chan · 如何使用锁定/解锁? 6 年前 |
![]() |
Josh F. · NSBundle mainBundle返回零 6 年前 |