Objective-C中有两种初始化对象的方式,即:
1) AVCaptureSession *captureSession = [[AVCaptureSession alloc] init];
2) AVCaptureSession *session = [AVCaptureSession new];
似乎他们在做同样的工作。它们之间有什么区别?还是"new"只是iOS5的新奇事物?
不胜感激,
阿尔乔姆
Best Answer-推荐答案 strong>
new 是一种执行 alloc/init 的快捷方式,它应该适用于任何对象,但它主要是 Smalltalk 的后遗症,并且 new 调用从不带参数,所以你根本看不到它用得太多了。
所以两者应该是相同的,这是一个新奇的东西,但不是 iOS 5。
编辑:除此之外,new 在 NSObject 上定义为调用 alloc 然后是 init 的东西,并且自 Mac OS X 10.0(这是开始就 Apple 的文档而言)。
关于objective-c - 在 Objective-C 中初始化对象的不同方法,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/7928281/
|