我有点不清楚的是这些NSMutableArray方法之间的区别:

// Class Method Style

NSMutableData *myMutableDataInstance = [NSMutableData dataWithLength:WholeLottaData];

// Instance Method Style

NSMutableData *myMutableDataInstance = nil;

myMutableDataInstance = [[[NSMutableData alloc] initWithLength:WholeLottaData]] autorelease];

在幕后,这里的班级方法究竟是什么?它与实例方法有何不同?

干杯, 道格

有帮助吗?

解决方案

类方法创建并自动释放NSMutableArray对象。

实例方法初始化您必须自己分配的对象。您编写的代码实际上不会执行任何操作,因为 myMutableArrayInstance nil 。类方法大致相当于:

NSMutableArray *myMutableArrayInstance = [NSMutableArray alloc];
[myMutableArrayInstance initWithCapacity:WholeLottaData];
[myMutableArrayInstance autorelease];

正如Peter Hosey在评论中指出的那样,它的确意味着:

NSMutableArray *myMutableArrayInstance = [[[NSMutableArray alloc]
                                           initWithCapacity:WholeLottaData]
                                           autorelease];

如果 initWithCapacity:方法返回不同的对象,它将与上面的结果不同。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top