【问题标题】:Get Reference to SceneKit Catalog Swift获取对 SceneKit 目录 Swift 的参考
【发布时间】:2019-02-20 20:35:56
【问题描述】:

我一定遗漏了一些简单的东西 - 我正在尝试遍历 .scnassets 文件夹中的文件,但似乎无法获得对 文件夹/目录。

这是组织者:

Models.scnassets 包含一个文件。我试过这个:

let fileManager = FileManager.default
let urls = fileManager.urls(for: .documentDirectory, in: .userDomainMask)
let docsURL = urls.first
let assetFolderPath = docsURL?.appendingPathComponent("Models.scnassets").path

我尝试了这个和其他几个变体:

let modelPathString = "ARAds/Models.scnassets"

然后我尝试用上述两个路径计算文件:

    do {
        let modelPathDirectoryFiles = try fileManager.contentsOfDirectory(atPath: assetFolderPath!)
        //or modelPathString
        print(modelPathDirectoryFiles.count)
    } catch {
        print("error getting list of files")
    }

在所有情况下我都会收到错误消息。 我认为必须有一些特殊的方法来获取对 SceneKit 的引用 目录,但我无法在 Apple 文档和 SO 中找到它。 任何指导将不胜感激。 iOS 11.4 Xcode 10.0

【问题讨论】:

    标签: ios xcode scenekit


    【解决方案1】:

    查看您的代码,我首先看到的是您引用的 Documents Directory 实际上并不是您的文件夹所在的位置。

    The Documents Directory 是您实际设备上的一个文件夹,您可以在其中保存用户数据或其他可以在以后访问的文件(例如通过 iTunes 共享)。

    如果您将Models.scnassets 文件夹移动到黄色的ArAds 文件夹下,您应该能够像这样访问您的内容:

    let myModelToLocate = SCNScene(named: "Models.scnassets/Phone_01.scn")
    

    希望对你有帮助...

    【讨论】:

      【解决方案2】:

      您为我指明了更好的方向,但如果我知道名称,我已经可以获取 scn 并创建一个节点。我真正想做的是用可用的选项填充一个 tableview - 所以我需要找到当前的场景文件列表。

      我认为这会奏效:

      let subdir = Bundle.main.resourceURL!.appendingPathComponent("Models.scnassets").path
      
      do {
          let modelPathDirectoryFiles = try fileManager.contentsOfDirectory(atPath: subdir)
          print(modelPathDirectoryFiles.count) //this works
          //then do my thing with the array
      } catch {
          print("error getting list of files")
      }
      

      无论我是否移动文件夹,这似乎都有效。

      【讨论】:

        猜你喜欢
        • 2017-02-04
        • 2019-01-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-27
        • 1970-01-01
        • 1970-01-01
        • 2017-11-18
        相关资源
        最近更新 更多