为何仅导入ARKit的iOS Swift代码可使用Vision框架的VNSequenceRequestHandler
问题解答
- 无需单独导入Vision即可使用
VNSequenceRequestHandler的原因:
ARKit的核心功能(包括场景特征识别、人体/肢体姿态追踪、平面检测等)均依赖Vision框架实现,苹果在ARKit的模块定义中使用了@_exported import的规则隐式导出了Vision框架。按照Swift的模块导入逻辑,只要导入了包含导出依赖的上层框架(这里就是ARKit),其导出的所有依赖框架的公共符号都会直接对当前代码可见,因此你不需要额外写import Vision就可以直接调用Vision框架的各类公开类和方法。 - ARKit定义中出现SwiftUI相关内容的原因:
ARKit是同时适配UIKit和SwiftUI两套UI框架的通用系统框架,本身内置了SwiftUI专属的适配接口(比如ARView的SwiftUI封装、ARKit场景配置相关的视图修饰符等)。这些接口属于框架的公共通用定义,和你当前项目选择使用UIKit还是SwiftUI没有关系,所以你在跳转到ARKit定义时会看到SwiftUI相关的声明,不会因为你用UIKit就隐藏这部分内容。
内容的提问来源于stack exchange,提问作者Mattia Ducci
相关产品推荐
相关产品推荐

