Swift &引用;非法子类ABRemotePersonView实例化;客户端应仅使用NSRemoteView“;尝试实例化CNContactViewController时

Swift &引用;非法子类ABRemotePersonView实例化;客户端应仅使用NSRemoteView“;尝试实例化CNContactViewController时,swift,macos,macos-high-sierra,cncontactviewcontroller,Swift,Macos,Macos High Sierra,Cncontactviewcontroller,我试图在表格中显示选定联系人的CNContactViewController,该表格显示在模式窗口中: let controller = CNContactViewController.init() controller.contact = contact.contact guard let selectedCellView = contactsTable.view(atColumn: 0, row: contactsTable.selectedR

我试图在表格中显示选定联系人的CNContactViewController,该表格显示在模式窗口中:

        let controller = CNContactViewController.init()
        controller.contact = contact.contact
        guard let selectedCellView = contactsTable.view(atColumn: 0, row: contactsTable.selectedRow, makeIfNecessary: false) else {
            print("ERROR: selected cell is not visible")
            return
        }
        let bounds = selectedCellView.bounds
        presentViewController(controller, asPopoverRelativeTo: bounds, of: selectedCellView, preferredEdge: .maxX, behavior: .transient)
popover功能正常,一切正常,除了控制台输出:

2017-11-23 14:45:47.322456+0100 Link-em[9253:1949091] warning: illegal subclass ABRemotePersonView instantiating; client should use only NSRemoteView (
    0   ViewBridge                          0x00007fff68c881c0 -[NSRemoteView _preSuperInit] + 195
    1   ViewBridge                          0x00007fff68c88544 -[NSRemoteView initWithFrame:] + 25
    2   AddressBook                         0x00007fff41e33a4e -[ABRemotePersonView initWithFrame:] + 77
    3   AppKit                              0x00007fff41f341c5 -[NSView init] + 62
    4   ContactsUI                          0x00007fff442fa83b -[CNContactViewController loadView] + 50
    5   AppKit                              0x00007fff41f899d2 -[NSViewController _loadViewIfRequired] + 75
    6   AppKit                              0x00007fff41f8993d -[NSViewController view] + 30
    7   ContactsUI                          0x00007fff442fa8c2 -[CNContactViewController _remotePersonView] + 53
    8   ContactsUI                          0x00007fff442fa9a5 -[CNContactViewController serviceViewControllerProxy] + 32
    9   ContactsUI                          0x00007fff442fa732 -[CNContactViewController apiAdapter] + 73
    10  ContactsUI                          0x00007fff442faad1 -[CNContactViewController setContact:] + 71
    11  Link-em                             0x000000010000702f _T07Link_em15ContactsServiceC5getUISo23CNContactViewControllerCSgSS3for_tF + 239
    12  Link-em                             0x0000000100012f37 _T07Link_em27ContactsTableViewControllerC11doubleClickyypF + 1367
    13  Link-em                             0x0000000100013588 _T07Link_em27ContactsTableViewControllerC11doubleClickyypFTo + 72
    14  AppKit                              0x00007fff426dea7a -[NSApplication(NSResponder) sendAction:to:from:] + 312
    15  AppKit                              0x00007fff42185777 -[NSControl sendAction:to:] + 86
    16  AppKit                              0x00007fff421f9188 -[NSTableView _sendAction:to:row:column:] + 121
    17  AppKit                              0x00007fff421f75c7 -[NSTableView mouseDown:] + 7186
    18  AppKit                              0x00007fff4287da01 -[NSWindow(NSEventRouting) _handleMouseDownEvent:isDelayedEvent:] + 5891
    19  AppKit                              0x00007fff4287a658 -[NSWindow(NSEventRouting) _reallySendEvent:isDelayedEvent:] + 2359
    20  AppKit                              0x00007fff42879904 -[NSWindow(NSEventRouting) sendEvent:] + 497
    21  AppKit                              0x00007fff426da937 -[NSApplication(NSEvent) sendEvent:] + 307
    22  AppKit                              0x00007fff4217a0f6 -[NSApplication _doModalLoop:peek:] + 551
    23  AppKit                              0x00007fff4235ed63 __35-[NSApplication runModalForWindow:]_block_invoke_2 + 64
    24  AppKit                              0x00007fff4235ed10 __35-[NSApplication runModalForWindow:]_block_invoke + 75
    25  AppKit                              0x00007fff4280c101 _NSTryRunModal + 100
    26  AppKit                              0x00007fff42177b3d -[NSApplication runModalForWindow:] + 133
    27  Link-em                             0x0000000100010775 
    [...skipped rest...]
)
我能做些什么吗?看起来像MacOS中的一个bug,但可能是我没有正确初始化某些东西?
或者可能是这样的控制器无法从模式窗口实例化?

你找到解决方法了吗?@strangetimes,不幸的是没有,但是我没有注意到这个错误的任何副作用,所以现在我只是忽略它CNContactViewController自发布以来就已损坏。目前最好的方法是基于Contacts框架进行您自己的实现,并远离此通用视图控制器(大量工作,但可使您免于糟糕的评论和崩溃)@MarekH,您在实践中是否遇到过任何崩溃或糟糕的评论?我没有注意到任何不好的事情,除了控制台中的消息。虽然我还没有试着通过复习。或者,你的意思可能是来自用户的糟糕评论,他们会在本地阅读日志?我做了太多的工作来证明错误的输出。是的,因为我需要允许用户更改内部数据。正如您所看到的,它仍然连接到abpersonview。他们破坏了KVO,因为我总是得到一个新对象CNContact/ABPerson。因此,我显示的内容与编辑后的内容不匹配。用户认为是我的应用程序出了问题。