【发布时间】:2011-03-08 23:52:06
【问题描述】:
我是一名 iPhone/Objective-C 新手,具有广泛的 Java 背景。
我正在学习更多关于 Objective-c 内存管理的知识,并且我正在阅读 Apple 关于内存管理的文档:http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html
在“对象所有权策略”部分中,它表示您拥有通过以 alloc、new 或包含副本开头的方法创建的任何对象。所有权意味着您需要在完成对象后显式地release。
所以我正在查看 NSMutableArray 文档:http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSMutableArray_Class/Reference/Reference.html
有两种方法几乎可以做同样的事情......它们都创建了一个具有一些初始容量的数组。一个是类方法,一个是实例方法。
+ (id)arrayWithCapacity:(NSUInteger)numItems;
- (id)initWithCapacity:(NSUInteger)numItems;
现在作为一个懒惰的 Java 开发人员,我为什么会选择实例方法而不是类方法,因为我知道在某个时间点我必须自己清理?
我想我可能在这里遗漏了一个基本点...这仅仅是确定何时对象被释放的问题吗?类方法中的autorelease 与实例方法中的release?我想在资源非常有限的平台(iPhone)上,我应该避免使用类方法并在完成后立即释放对象?
谢谢!
【问题讨论】:
标签: iphone objective-c memory-management