如何从Xcode中的特定文件夹中获取所有png?

时间:2019-02-09 04:29:26

标签: ios swift xcode directory

我想在Xcode的特定文件夹中获取所有png。我目前正在使用此代码获取PNG文件。

(Bundle.main.paths(forResourcesOfType: "png", inDirectory: nil) as NSArray).enumerateObjects({ obj, idx, stop in
        var path = (obj as! NSString).lastPathComponent
        print("Path - ",path)
})

但这会从所有文件夹中获取所有PNG,例如-Example-1

我只想在Fonts文件夹中获取图像。我该怎么办?

2 个答案:

答案 0 :(得分:1)

在查看您的代码时,我假设您想从Bundle App Folder的Fonts文件夹中获取所有图像路径。在这种情况下,必须将“字体”文件夹设置为“参考文件夹”(蓝色图标),而不是“组”文件夹(黄色图标),如下所示:
enter image description here

您可以在Project Navigator中拖动文件夹,它将显示此框:
enter image description here

请确保选择“创建文件夹引用”并选择您的项目目标。

原因是参考文件夹是Bundle中的真实文件夹。组文件夹中的所有文件都将被放平,这意味着它们都位于捆绑软件的根目录中,因此您将不知道这些文件的父文件夹。

然后,您可以使用代码来检索png(+您应该为inDirectory参数指定“字体”):

(Bundle.main.paths(forResourcesOfType: "png", inDirectory: "Fonts") as NSArray).enumerateObjects({ obj, idx, stop in
    var path = (obj as! NSString).lastPathComponent
    print("Path - ",path)
})

希望这会有所帮助。

答案 1 :(得分:0)

您需要执行以下两个步骤才能实现目标。

  1. inDirectory参数中传递文件夹名称。
    像这样的东西:
    let pngs = Bundle.main.paths(forResourcesOfType: "png", inDirectory: "Fonts")

  2. 确保将Fonts目录以Folder Reference而不是Group的形式添加到项目中。
    Selecting Folder References instead of Groups

希望这会有所帮助

相关问题