Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 获取对SceneKit目录Swift的引用_Ios_Xcode_Scenekit - Fatal编程技术网

Ios 获取对SceneKit目录Swift的引用

Ios 获取对SceneKit目录Swift的引用,ios,xcode,scenekit,Ios,Xcode,Scenekit,我一定错过了一些简单的东西——我正在尝试遍历 .scnassets文件夹中的文件,但似乎无法获取对 文件夹/目录 以下是组织者: Models.scnassets包含一个文件。我试过这个: let fileManager = FileManager.default let urls = fileManager.urls(for: .documentDirectory, in: .userDomainMask) let docsURL = urls.first let assetFolderPa

我一定错过了一些简单的东西——我正在尝试遍历 .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")
    }
我在所有情况下都会收到错误消息。 我想一定有某种特殊的方法来获取对场景的引用 但我在苹果的文档中也找不到。
任何指导都将不胜感激。iOS 11.4 Xcode 10.0

查看您的代码,我看到的第一件事是您引用的是
文档目录
,而该目录实际上并不在文件夹所在的位置

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

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

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

希望它能有所帮助……

您为我指明了一个更好的方向,但如果我知道名称,我已经可以获得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")
}
无论我是否移动文件夹,这似乎都有效