循环遍历 URLS 数组

Looping through an array of URLS

希望这很简单,我只是个慢热的新手。我创建了一个将照片存储在 iCloud 容器中的应用程序。这样可行。现在我正在尝试列出容器中的照片以显示在我的 UI 视图中。

列出容器内容:

    public static func loadRBPhotos() -> [URL]? {
        do {
            let directoryContents = try FileManager.default.contentsOfDirectory(at: getDocumentDiretoryURL(), includingPropertiesForKeys: nil)
            return directoryContents
        } catch {
            return nil
        }
    }

在我看来,我可以看到这些网址:

Button(action: {
   print(photoFileController.loadRBPhotos()!)
}){
   Text("Load RB Photos")
}

输出文件 url 数组:

[file:///private/var/mobile/Library/Mobile%20Documents/iCloud~RbPhotos/Documents/.XXXXXX-XXXXXX-XXXXXXXXXXXXXX.icloud, ile:///private/var/mobile/Library/Mobile%20Documents/iCloud~RbPhotos/Documents/.XXXXXX-XXXXXX-XXXXXXXXXXXXXX.icloud, ile:///private/var/mobile/Library/Mobile%20Documents/iCloud~RbPhotos/Documents/.XXXXXX-XXXXXX-XXXXXXXXXXXXXX.icloud, ile:///private/var/mobile/Library/Mobile%20Documents/iCloud~RbPhotos/Documents/.XXXXXX-XXXXXX-XXXXXXXXXXXXXX.icloud]

但我正在努力循环遍历此数组以显示:

ForEach(photoFileController.loadRBPhotos()!, id: \.self) { photo in
    Text(String(contentsOf: photo))
}

错误:

非常感谢任何帮助!

如果要创建包含每个文件完整路径的文本项数组 URL,请使用如下代码:

ForEach(photoFileController.loadRBPhotos()!, id: \.self) { url in
    Text(url.path))
}

请注意,这将包括每个文件的完整目录树,并且 iOS 目录名称又长又含糊。您可能希望将路径向下编辑到顶级目录名称和文件名。