菜鸟教程小白 发表于 2022-12-12 23:48:37

ios - 是否可以创建一个继承自 AVCaptureDevice 的类?


                                            <p><p>我正在尝试像这样创建一个继承自 AVCaptureDevice 的类</p>

<p>在 MyClass.h 文件中</p>

<pre><code>@interface MyClass : AVCaptureDevice
</code></pre>

<p>但是如何在 init 方法中将 AVCaptureDevice 实例分配给“self”?</p>

<p>这是我现在的方法(不起作用...)</p>

<p>在 MyClass.m 文件中</p>

<pre><code>- (id) init
{
    self = ;
    if(self)
    {
       NSArray *devices = ;
       AVCaptureDevice *captureDevice = ;
       self = (MyClass*)captureDevice;
       ;
    }
    return self;
}

- (void) myClassMethod
{
    NSLog(@&#34;Doesn&#39;t work&#34;);
}
</code></pre>

<p>我得到了 <code>NSInvalidArgumentException</code>,原因:'<code>-:</code> unrecognized selector sent to instance”,这是有道理的,因为 test 不是 AVCaptureDevice 中的方法。</p>

<p>我之前做的另一种方法是在 MyClass 类中包含 AVCaptureDevice,它有效。</p>

<p>但我仍然想知道我是否错过了一些实现这一想法的好方法。</p>

<p>谢谢。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>AVCaptureDevice 不适用于子类化。<br/>
如果不使用其中一种类方法,就无法创建此类的具体实例:</p>

<pre><code>+ devices
+ deviceWithUniqueID:
+ defaultDeviceWithMediaType:
+ devicesWithMediaType:
</code></pre>

<p>您的选项是包含实例并包装对它的访问,为它创建代理或一些包装器,甚至是类别。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 是否可以创建一个继承自 AVCaptureDevice 的类?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/24729974/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/24729974/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 是否可以创建一个继承自 AVCaptureDevice 的类?