extensionContext使iOS键盘扩展崩溃

时间:2018-12-04 04:33:42

标签: ios swift

我试图从键盘扩展的UIInputViewController调用extensionContext.open(_ URL: URL)(以打开主机应用程序)。可以毫无问题地引用extensionContext,但是只要我什至没有(实际上没有调用)对open()的引用,扩展名就从SIGQUITEXC_BAD_ACCESS开始崩溃。我不确定如何调试它。

这是一个例子:

override func viewDidLoad() {
    super.viewDidLoad()

    guard let context = self.extensionContext else { return }
    guard let appUrl = URL(string: "myapp://") else { return }
    print("context ", context.debugDescription)
    /* output:
    context  <UIInputViewControllerInterfaceClient: 0x281680ab0> - UUID: 400EC078-721E-4500-A85A-0B0C970CD54A - _isHost: NO
    _isDummyExtension:NO
    inputItems:
    (
    )
     */
    context.open(appUrl)    // EXC_BAD_ACCESSS
}

以上以EXC_BAD_ACCESS开头 stacktrace enter image description here

func testOpen() {
    guard let context = self.extensionContext else {
        return
    }
    guard let appUrl = URL(string: "myapp://") else { return }
    print("context ", context.debugDescription)
    context.open(appUrl)
}

即使从未从任何地方调用SIGQUIT,这也以testOpen中断。 注释掉context.open(appUrl),然后键盘就可以正常启动了。

stacktrace enter image description here

0 个答案:

没有答案