希望这很简单,我只是一个迟钝的新手。我已经创建了一个在iCloud容器中存储照片的应用程序。这是可行的。现在,我正在尝试列出容器中的照片以显示在我的UI视图中。
列出容器内容:
public static func loadRBPhotos() -> [URL]? {
do {
let directoryContents = try FileManager.default.contentsOfDirectory(at: getDocumentDiretoryURL(), includingPropertiesForKeys: nil)
return directoryContents
} catch {
return nil
}
}从我的观点来看,我可以很好地看到urls:
Button(action: {
print(photoFileController.loadRBPhotos()!)
}){
Text("Load RB Photos")
}输出文件urls数组:
[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))
}错误:

任何帮助都是非常感谢的!
发布于 2021-02-04 09:02:08
如果要创建包含每个文件URL的完整路径的文本项数组,请使用如下代码:
ForEach(photoFileController.loadRBPhotos()!, id: \.self) { url in
Text(url.path))
}请注意,这将包括每个文件的完整目录树,并且iOS目录名很长且难以理解。您可能希望将路径向下编辑为顶级目录名和文件名。
https://stackoverflow.com/questions/66037879
复制相似问题