我不清楚这些
NSMutableData
方法之间的区别:
// 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:
方法返回不同的对象,将会得到与上面不同的结果。