如何在iOS应用程序中以编程方式检测SwiftUI使用情况

如何在iOS应用程序中以编程方式检测SwiftUI使用情况,ios,objective-c,swiftui,Ios,Objective C,Swiftui,我正在为iOS开发一个库,我需要知道使用该库的应用程序是否正在运行SwiftUI,以便我能够适当地处理事情 有没有办法在Objective-C中以编程方式找到这个问题 最后我做了这个 获取应用程序的根或键窗口 检查其类名是否包含“UIHostingController” 也可以对此进行零检查:NSClassFromString(@“SwiftUI.\u UIGraphicsView”) 您也可以检查其他swift ui类,但到目前为止,这已经涵盖了所有情况。您的代码中使用了哪些依赖于外部用

我正在为iOS开发一个库,我需要知道使用该库的应用程序是否正在运行SwiftUI,以便我能够适当地处理事情

有没有办法在Objective-C中以编程方式找到这个问题

最后我做了这个

  • 获取应用程序的根或键窗口

  • 检查其类名是否包含“UIHostingController”

  • 也可以对此进行零检查:NSClassFromString(@“SwiftUI.\u UIGraphicsView”)


  • 您也可以检查其他swift ui类,但到目前为止,这已经涵盖了所有情况。

    您的代码中使用了哪些依赖于外部用户语言的内容?我们产品的一些功能在swift ui中还不起作用,因此,我想记录一条消息,告诉用户检测到了SwiftUI,并非所有功能都能正常工作。此外,我们有时会在应用程序中显示一个覆盖图,如果我检测到swiftui,我希望最终显示一个swiftui覆盖图。此外,我不是问语言,我是专门问UI框架“swiftui”不仅仅是swift语言如果您使用的是
    UIViewRepresentable
    UIViewControllerRepresentable
    ,那么将日志代码放在那里。我认为最可靠的方法是检查
    rootViewController
    是否属于
    UIHostingController
    类型。(注意:我不知道怎么做。)UIKit应用程序通常有一个故事板,但很容易删除。此外,UIKit应用程序的
    info.pist
    有一个用于
    UIMainStoryboardFile
    的键,但我不确定这是否像检查
    UIHostingController
    一样可靠。记住,在Xcode 12中,这是可以改变的。