iphone - cocoa 触感。这些 NSMutableData 方法之间到底有什么区别?

标签 iphone cocoa nsmutablearray class-method instance-method

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

// Class Method Style

NSMutableData *myMutableDataInstance = [NSMutableData dataWithLength:WholeLottaData];

// Instance Method Style

NSMutableData *myMutableDataInstance = nil;

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

在幕后,类方法到底在做什么?它与实例方法有何不同?

干杯, 道格

最佳答案

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

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

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

正如 Peter Hosey 在评论中指出的那样,它的真正含义是:

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

如果 initWithCapacity: 方法返回不同的对象,则会得到与上面不同的结果。

关于iphone - cocoa 触感。这些 NSMutableData 方法之间到底有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1600283/

相关文章:

iphone - IOS 的 XCode 中的预期表达式错误

ios - 在 swift 中为按钮添加约束(Apple iOS 教程)

ios - 当表格 View 向上滚动时,表格 View 第一部分(第 0 部分)没有向上移动

ios - 监听 url 并重定向

xcode - 从自定义 View 内的 NSButton 隐藏 NSMenu

ios - 具有不等式的自动布局歧义

objective-c - 在Xcode中组织大型Cocoa应用程序源代码的最佳方法是什么?

ios - 如何创建类似 UITableView 结构的树?

ios - replaceObjectAtIndex objectforKey 崩溃

ios - 填充 NSMutableArray 不工作