我试图存储我的场景包场景(理想情况下是Firebase,但我不认为这可能吗?)。从文档中似乎很少的内容中使用以下内容 - 我只是将 1.0作为进度返回(完成),并将 nil作为错误。
@IBOutlet weak var sceneView: ARSCNView!
let scene = SCNScene()
sceneView.scene = scene
sceneView.scene.write(to: URL(string: "http://foo.com")!, options: nil, delegate: nil) { (totalProgress, error, stop) in
print("Progress \(totalProgress) Error: \(String(describing: error))")
}
这个网址显然是一个虚拟网址,我至少期待它出错?当我使用适当的Firebase存储URL时,没有任何内容存储,我得到相同的反馈。有没有人有一个有效的swift 3(pref)示例?
由于
答案 0 :(得分:0)
看起来SceneKit无法正确显示错误,但返回值应该是正确的:
let success = sceneView.scene.write(to: URL(string: "http://foo.com")!, options: nil, delegate: nil) { (totalProgress, error, stop) in
print("Progress \(totalProgress) Error: \(String(describing: error))")
}
print("Success: \(success)")
进度1.0错误:无
成功:错误
要了解失败的原因,您可以先创建SceneKit文档,然后尝试保存它:
let data = NSKeyedArchiver.archivedData(withRootObject: sceneView.scene)
do {
try data.write(to: URL(string: "http://foo.com")!)
} catch let error {
print("Error: \(String(describing: error))")
}
错误:错误域= NSCocoaErrorDomain代码= 518"无法保存文件,因为不支持URL类型http。"的UserInfo = {NSURL = http://foo.com}