菜鸟教程小白 发表于 2022-12-13 09:36:10

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


                                            <p><p>Objective-C中有两种初始化对象的方式,即:</p>

<p>1) <code>AVCaptureSession *captureSession = [ init];</code></p>

<p>2) <code>AVCaptureSession *session = ;</code></p>

<p>似乎他们在做同样的工作。它们之间有什么区别?还是"new"只是iOS5的新奇事物?</p>

<p>不胜感激,</p>

<p>阿尔乔姆</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p><code>new</code> 是一种执行 alloc/init 的快捷方式,它应该适用于任何对象,但它主要是 Smalltalk 的后遗症,并且 <code>new</code> 调用从不带参数,所以你根本看不到它用得太多了。</p>

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

<p>编辑:除此之外,<a href="http://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/nsobject_Class/Reference/Reference.html#//apple_ref/occ/clm/NSObject/new" rel="noreferrer noopener nofollow"><code>new</code></a>在 <code>NSObject</code> 上定义为调用 <code>alloc</code> 然后是 <code>init</code> 的东西,并且自 Mac OS X 10.0(这是开始就 Apple 的文档而言)。</p></p>
                                   
                                                <p style="font-size: 20px;">关于objective-c - 在 Objective-C 中初始化对象的不同方法,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/7928281/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/7928281/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: objective-c - 在 Objective-C 中初始化对象的不同方法