在Objective-C中初始化对象的不同方法

时间:2011-10-28 10:52:21

标签: objective-c ios cocoa ios4 ios5

在Objective-C中有两种初始化对象的方法,即:

1)AVCaptureSession *captureSession = [[AVCaptureSession alloc] init];

2)AVCaptureSession *session = [AVCaptureSession new];

似乎他们正在做同样的工作。他们之间有什么区别?或者“新”它只是iOS5的一个新奇事物?

非常感谢答案,

阿尔乔姆

1 个答案:

答案 0 :(得分:3)

new是一种快捷方式,可以对任何对象执行alloc / init,但它主要是来自Smalltalk的宿醉,new调用从不接受参数,所以你看不到它被使用完全没有了。

所以两者应该是相同的,这是一个新奇的东西,但不是iOS 5。

编辑:对此,newNSObject上定义为调用alloc然后调用init的内容,并且自Mac OS X 10.0起可用(就Apple的文档而言,这是时间的开始)。