在Objective-C中有两种初始化对象的方法,即:
1)AVCaptureSession *captureSession = [[AVCaptureSession alloc] init];
2)AVCaptureSession *session = [AVCaptureSession new];
似乎他们正在做同样的工作。他们之间有什么区别?或者“新”它只是iOS5的一个新奇事物?
非常感谢答案,
阿尔乔姆
答案 0 :(得分:3)
new
是一种快捷方式,可以对任何对象执行alloc / init,但它主要是来自Smalltalk的宿醉,new
调用从不接受参数,所以你看不到它被使用完全没有了。
所以两者应该是相同的,这是一个新奇的东西,但不是iOS 5。
编辑:对此,new
在NSObject
上定义为调用alloc
然后调用init
的内容,并且自Mac OS X 10.0起可用(就Apple的文档而言,这是时间的开始)。