代码之家  ›  专栏  ›  技术社区  ›  JohnSF

获取SceneKit目录Swift的引用

  •  0
  • JohnSF  · 技术社区  · 7 年前

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

    主办方:

    enter image description here

    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")
        }
    

    我在任何情况下都会收到错误信息。 但我在苹果文档中也找不到。 任何指导都将不胜感激。iOS 11.4 Xcode 10.0版

    2 回复  |  直到 7 年前
        1
  •  1
  •   BlackMirrorz    7 年前

    看看你的代码,我看到的第一件事是,你引用的是 Documents Directory 而不是你的文件夹所在的位置。

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

    如果你移动你的 Models.scnassets 黄色下方的文件夹 ArAds 文件夹您应该能够访问您的内容,如下所示:

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

    希望对你有帮助。。。

        2
  •  0
  •   JohnSF    7 年前

    你给我指出了一个更好的方向,但是我已经可以得到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")
    }
    

    不管我是否移动文件夹,这似乎都是有效的。