我目前正在编写一个iOS应用程序,我的目的是在Core Data中创建的数据库中保存与应用程序关联的数据对象。我已经成功创建了数据库,并计划通过iCloud同步登录到同一个iCloud帐户的不同设备之间的数据对象。在所有这些中间,我还希望媒体文件与不同的数据对象相关联。但是,我不希望将构成媒体文件的二进制数据直接保存到DB。因此,我需要某种方式来保留对DB中正确媒体文件的引用。我的想法是将每个媒体文件放在特定文件夹中,打开该文件夹的iCloud同步,并将媒体文件的文件名保存到数据库中。但是,我无法检索任何媒体文件的文件路径。
以下是该应用的代码段。运行该代码时,将存在assetCollection以及带索引的photosAsset,并且正在视图控制器中显示图像。尽管如此,没有if语句打印任何输出(所有引用都是零)。
if let a: String = self.photosAsset[self.index].bundleIdentifier {
println(a)
}
if let a = self.photosAsset[self.index].bundleURL {
println(a)
}
if let a: String = self.photosAsset[self.index].resourcePath {
println(a)
}
if let a = self.photosAsset[self.index].resourceURL {
println(a)
}
有关如何检索以这种方式显示的图像文件的文件路径的任何想法?关于如何检索一般可能适用于此问题的文件路径的任何解决方案?
对我的方法的任何想法也将不胜感激。
答案 0 :(得分:1)
我认为如果您将照片存储为xcassets,那么您可能无法访问它们的路径,因为这种类型有时可能会被压缩(因此Apple似乎不允许这样做),例如查看Access Asset Catalog pathForResource
的答案我会创建一个自定义目录结构来存储照片,而不是将它们存储在包中,例如在/ Documents /
中这将允许您使用NSFileManager等类来查找某些类型的所有照片等,并在需要时加载它们。
有关Apple建议您存储内容的信息,请参阅https://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html