0
A
回答
3
请阅读Cocoa Memory Management Guide,内存管理是你应该完全理解的东西。 (并不难。)如果你在一个方法中声明一个变量,你在dealloc
中没有指向它的指针,所以你不能在那里释放它 - 你只能在它超出范围之前释放它。另一个问题是,如果你应该释放它。这取决于它是基于堆栈,自动释放还是保留变量:
float foo[] = {1, 2, 3}; // stack-based, no releasing necessary
NSString *foo = [NSString stringWithFormat:…]; // autoreleased, you must not release it
NSString *foo = [[NSString alloc] initWith…]; // retained, you must release it
2
你需要在release
它本地 - 假设你创建它alloc
/new
/copy
或retain
它。 (如果你只是在没有分配或保留的情况下从其他地方得到它,那么它不属于你,你根本不应该释放)。
否则,一旦它超出本地范围,就无法访问指针和对象会泄漏。
+0
感谢您的快速回复 – sregorcinimod
-1
相关问题
- 1. 我需要释放CFError吗?
- 2. 你需要释放NSData吗?
- 3. 是否需要局部变量?
- 4. 局部变量需要最终声明
- 5. 在德尔福2009年,我需要释放变体数组吗?
- 6. 我必须释放这个变量吗?
- 7. 目标c:使用它释放内存后需要将局部变量设置为零吗?
- 8. 我需要全局变量还是R.string.x可以吗?
- 9. 我需要防止局部变量操作。在方法范围
- 10. does XMLDOMNodePtr :: get_text()需要明确释放吗?
- 11. 我可以使用“malloc”作为局部变量来返回局部变量吗?
- 12. 如何释放局部变量拥有的资源?
- 13. 在返回之前释放局部变量?
- 14. 如何释放局部变量的动态分配内存?
- 15. objective-c何时应该释放静态局部变量
- 16. GL_TEXTUREs是否需要释放/释放?
- 17. 在使用realloc之前需要释放一个指针变量吗?
- 18. 带局部变量注释的AOP
- 19. 我是否需要释放此对象?
- 20. 我是否需要释放UITouch对象?
- 21. 我需要从ptsname()中释放结果吗?
- 22. 我需要释放手势识别器吗?
- 23. 我需要在.NET中释放私人界面字段吗?
- 24. 局部变量比全局变量要长7倍?
- 25. Capybara-webkit需要大量的内存。我怎么能释放它?
- 26. 需要保护龙卷风的全局变量吗?
- 27. 在Ruby on Rails中,当使用before_filter时,局部变量需要变成实例变量吗?
- 28. 需要设置全局变量
- 29. 需要全局变量在php中
- 30. 需要释放互斥锁?
谢谢 - 这就是我需要的答案 – sregorcinimod