我是一名具有广泛Java背景的iPhone/Objective-C新手。
我正在学习Objective-C中的内存管理,并阅读苹果公司的内存管理文档:http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html
在对象所有权策略部分,它说您拥有通过以alloc、new或包含copy开头的方法创建的任何对象。所有权意味着您需要在使用完对象后显式释放它。
因此,我正在查看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)上,我应该避免使用类方法,并尽快释放对象。谢谢!