Objective-C中有两种初始化对象的方式,即:
1) AVCaptureSession *captureSession = [[AVCaptureSession alloc] init];
2) AVCaptureSession *session = [AVCaptureSession new];
似乎他们在做同样的工作。它们之间有什么区别?还是"new"只是iOS5的新奇事物?
不胜感激,
阿尔乔姆
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/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |