objective-c - Objective-C 中初始化对象的不同方式

标签 objective-c ios cocoa ios4 ios5

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

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

2) AVCaptureSession *session = [AVCaptureSession new];

看起来他们在做同样的工作。它们之间有什么区别?还是"new"只是iOS5的新奇之处?

非常感谢您的回答,

阿尔乔姆

最佳答案

new 是执行 alloc/init 的快捷方式,它应该适用于任何对象,但这主要是 Smalltalk 的遗留问题,并且 new 调用从不接受参数,因此您再也看不到它被太多使用了。

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

编辑:除此之外,newNSObject 上定义为调用 alloc 然后调用 init 的东西,并且自 Mac OS X 10.0(这是开始)以来就可用。就 Apple 的文档而言,时间)。

关于objective-c - Objective-C 中初始化对象的不同方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7928281/

相关文章:

cocoa - 如何更新 NSView 中的文本?

iphone - 在 ios 应用程序的 dispatch_async 中可以创建的最大任务数是多少

ios - 需要访问包含CLLocation信息的NSArray对象

cocoa - dylib 中 Nib 的窗口

ios - iphone 如何推送浏览量?

ios - 如果/否则基于数组中对象的存在?

cocoa - 如何在Cocoa中关闭后重新显示主窗口?

iOS,钥匙串(keychain) : Wrong passcode output

objective-c - 使用 va_list 获取 EXC_BAD_ACCESS

objective-c - 核心数据 : Freeze at the end of a save