Xcode 9 GM

时间:2017-09-20 10:56:40

标签: ios arkit xcode9

我使用Xcode 9的测试版创建了一个ARKit项目,我可以在我的真实设备上运行而没有问题。
昨天,我升级到Xcode 9 GM,没有触及任何内容,Xcode显示多个错误,说它不知道ARSessionConfiguration,即:

  

使用未声明的类型' ARSessionConfiguration'

  

使用未声明的类型' ARWorldTrackingSessionConfiguration'

...代码:

let session = ARSession()
var sessionConfig: ARSessionConfiguration = ARWorldTrackingSessionConfiguration()

我已导入ARKit并在我的ViewController中使用ARSCNViewDelegate 从Xcode的测试版打开项目时,它不会显示错误,我可以再次在手机上运行该应用程序。

知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:16)

ARWorldTrackingSessionConfiguration已弃用并重命名为ARWorldTrackingConfigurationSee here

此外,ARSessionConfiguration已被弃用并重命名为ARConfiguration,现在是一个抽象基类。

当您不想要世界跟踪时使用AROrientationTrackingConfiguration,而不是使用通用的ARConfiguration。因此:

let configuration = AROrientationTrackingConfiguration()

您还可以检查设备是否支持全球跟踪:

if ARWorldTrackingConfiguration.isSupported {
   configuration = ARWorldTrackingConfiguration()
}
else  {
   configuration = AROrientationTrackingConfiguration()
} 

答案 1 :(得分:6)

在Xcode 9 GM中,看起来ARWorldTrackingSessionConfiguration已重命名为ARWorldTrackingConfiguration:

https://developer.apple.com/documentation/arkit/arworldtrackingconfiguration

参考此更改:

https://github.com/markdaws/arkit-by-example/issues/7

ARSessionConfiguration已重命名为ARConfiguration:

https://developer.apple.com/documentation/arkit/arconfiguration