Catalyst 'SwiftUI.AccessibilityNode' 不是已知的可序列化元素

Posted

技术标签:

【中文标题】Catalyst \'SwiftUI.AccessibilityNode\' 不是已知的可序列化元素【英文标题】:Catalyst 'SwiftUI.AccessibilityNode' is not a known serializable elementCatalyst 'SwiftUI.AccessibilityNode' 不是已知的可序列化元素 【发布时间】:2020-02-15 08:56:51 【问题描述】:

我使用 Xcode 11.1 创建了一个全新的 ios 单页应用程序(包括 SwiftUI)并启用了 Mac Catalyst。在我的 Mac(当然是 macOS 10.15)上运行新项目后,在窗口上点击一次后出现以下错误。

2019-10-18 12:59:48.479186+0200 test[3130:122148] Metal API Validation Enabled
2019-10-18 12:59:50.960734+0200 test[3130:122148] [AXRuntimeCommon] Unknown client: test
2019-10-18 12:59:50.962261+0200 test[3130:122148] [AXRuntimeCommon] This class 'SwiftUI.AccessibilityNode' is not a known serializable element and returning it as an accessibility element may lead to crashes
2019-10-18 12:59:51.313 test[3130:122148] **************_____________**************AXError: AVPlayerView is not a kind of NSView
1   AccessibilityBundles                0x00007fff42ee3b69 _AXBValidationCheckIsKindOfClass + 201
2019-10-18 12:59:51.386 test[3130:122148] **************_____________**************AXError: MKStarRatingView is not a kind of NSView
1   AccessibilityBundles                0x00007fff42ee3b69 _AXBValidationCheckIsKindOfClass + 201

注意:我还删除了沙盒功能,否则我会收到关于无法写入 ApplicationAccessibilityEnabled 的错误

有人知道怎么解决吗?

【问题讨论】:

我在 Twitter twitter.com/steipete/status/1154677703100026880 上发现了这个,所以目前看起来很正常 该推特帖子似乎不相关。 您遇到崩溃了吗?在关于“不是已知的可序列化元素”的消息之后,我遇到了先决条件崩溃。 目前没有崩溃 也没有崩溃,但我的应用程序中也收到了这条消息 【参考方案1】:

如果您发现它们像我一样烦人,您可以按照此答案中的说明将它们静音:

Hide strange unwanted Xcode logs

【讨论】:

警告:这会消除所有警告。不推荐。【参考方案2】:

据我所知,没有办法消除该错误,也没有必要;这是 SwiftUI 中固有的东西。它出现在 iOS、iPadOS 和(因此)Mac Catalyst 上,甚至出现在一个全新的项目中。除了让我们开发人员担心之外,它似乎也没有伤害任何东西。

在过去的六个月里,我一直在 SwiftUI 中全职工作,开发一个现在在 iOS、iPadOS 和 MacOS (Catalyst) 上运行的应用程序。 This class 'SwiftUI.AccessibilityNode' is not a known serializable element 错误从一开始就存在。在六个月的 SwiftUI 开发中,我没有发现它是任何问题的根源。

如果您打开 Xcode,创建一个新的单视图 iOS 项目,然后不加更改地运行它,它会显示“Hello, World!”。点击“你好,世界!”你的控制台将记录[AXRuntimeCommon] This class 'SwiftUI.AccessibilityNode' is not a known serializable element and returning it as an accessibility element may lead to crashes

我尝试添加可访问性修饰符,例如:

struct ContentView: View 
    var body: some View 
        Text("Hello, World!")
        .accessibility(hint: Text("Just say hi"))
        .accessibility(identifier: "helloWorld")
    

当我点击“Hello, World!”时,仍然会记录错误。

我还尝试扩展 SwiftUI.AccessibilityNode 以使其成为可序列化的元素,例如:

import SwiftUI

extension SwiftUI.AccessibilityNode 

Xcode 说type SwiftUI.AccessibilityNode doesn't exist

【讨论】:

以上是关于Catalyst 'SwiftUI.AccessibilityNode' 不是已知的可序列化元素的主要内容,如果未能解决你的问题,请参考以下文章

Catalyst9K设备介绍

Catalyst 3750堆叠

Mac Catalyst textview 第一响应者

第五篇:Spark SQL Catalyst源码分析之Optimizer

Spark 开源新特性:Catalyst 优化流程裁剪

UIMarkupTextPrintFormatter 和 Mac Catalyst