【发布时间】:2019-10-11 07:15:05
【问题描述】:
我正在为 iOS 开发一个库,我需要知道使用该库的应用程序是否正在运行 SwiftUI,以便我可以适当地处理事情。
有没有办法在 Objective-C 中以编程方式找出这个问题?
【问题讨论】:
-
您在代码中使用什么取决于外部用户的语言?
-
我们产品的一些功能在 swift UI 中还不能工作,所以我想记录一条消息,告诉用户 SwiftUI 被检测到并且并非所有功能都可以工作。此外,我们有时会在应用程序中显示一个叠加层,如果我检测到 swiftui,我希望最终显示一个 swiftui 叠加层。
-
另外,我不是在问语言,我是在专门询问 UI 框架“SwiftUI”,而不仅仅是 swift 语言
-
如果您使用的是
UIViewRepresentable或UIViewControllerRepresentable,则将日志记录代码放在那里。 -
我认为最可靠的方法是检查
rootViewController是否属于UIHostingController类型。 (注意:我不知道该怎么做。) UIKit 应用程序通常有一个情节提要,但很容易删除。此外,UIKit 应用程序的info.pist有一个UIMainStoryboardFile的密钥——但同样,我不确定这是否与检查UIHostingController一样可靠。请记住,Xcode 12 来了,这可能会改变。
标签: ios objective-c swiftui