外部附件 api 出现错误,如何使用外部附件

external accessory api getting error, how to work with external accessory

我正在尝试使用外部附件 api,写了一些代码,但我遇到了很大的错误。 谁能告诉我,我的问题在哪里?

这是我写的和我得到的错误

也许这对我的最后一个问题也有帮助

谢谢

var acs = EAAccessory()

override func viewDidLoad() {
    super.viewDidLoad()

    let accessorys = EAAccessoryManager.shared().connectedAccessories.first
    if accessorys != nil{

        acs = accessorys!
            acs.delegate = self
    }
    let session = EASession(accessory: acs, forProtocol: acs.protocolStrings.description)
    if session != nil {
        session?.outputStream?.delegate = self
        session?.outputStream?.schedule(in: RunLoop.main, forMode: RunLoopMode.defaultRunLoopMode)
        session?.outputStream?.open()
        session?.inputStream?.delegate = self
        session?.inputStream?.schedule(in: RunLoop.main, forMode: RunLoopMode.defaultRunLoopMode)
        session?.inputStream?.open()
    }
}

由于未捕获的异常而终止应用程序 'EAAccessoryInitException',原因:'-init 不受支持。 EAAccessoryManager 负责创建所有对象。 *** 首先抛出调用栈: (0x1d963b3d 0x1cbeb067 0x1d963a85 0x29bcdf85 0xdfa24 0xdd2b8 0xdee68 0xdf03c 0x230663bb 0x231a06ef 0x231a03a5 0x230660d3 0x231a06ef 0x231a0647 0x231a03a5 0x23065633 0x232f5b1f 0x22e0ce41 0x22c052a1 0x22e0bb11 0x22e1e7c5 0x22e0935b 0x1f244c13 0x1f244acd 0x1f244db7 0x1d91ffdd 0x1d91fb05 0x1d91df51 0x1d8711af 0x1d870fd1 0x22bfee2d 0x22bf9a53 0xe0b18 0x1d05e4eb) libc++abi.dylib:以 NSException

类型的未捕获异常终止

此行无效:

var acs = EAAccessory()

您无法创建 "empty" EAAccessory。

鉴于您这样做的方式,您的意思可能是:

var acs: EAAccessory!

var acs: EAAccessory?

也就是说,我通常会建议将附件处理从视图控制器中移出并移到模型层中。视图控制器通常应该只关注协调视图。它们不是用于驱动与硬件的交互。