我有点不清楚的是这些NSMutableArray方法之间的区别:
// Class Method Style
NSMutableData *myMutableDataInstance = [NSMutableData dataWithLength:WholeLottaData];
和
// Instance Method Style
NSMutableData *myMutableDataInstance = nil;
myMutableDataInstance = [[[NSMutableData alloc] initWithLength:WholeLottaData]] autorelease];
在幕后,这里的班级方法究竟是什么?它与实例方法有何不同?
干杯, 道格
答案 0 :(得分:5)
类方法创建并自动释放NSMutableArray对象。
实例方法初始化您必须自己分配的对象。您编写的代码实际上不会执行任何操作,因为myMutableArrayInstance
是nil
。类方法大致相当于:
NSMutableArray *myMutableArrayInstance = [NSMutableArray alloc];
[myMutableArrayInstance initWithCapacity:WholeLottaData];
[myMutableArrayInstance autorelease];
正如Peter Hosey在评论中指出的那样,它的确意味着:
NSMutableArray *myMutableArrayInstance = [[[NSMutableArray alloc]
initWithCapacity:WholeLottaData]
autorelease];
如果initWithCapacity:
方法返回不同的对象,则会产生与上述不同的结果。