我将一些图像写入到 Document 目录作为缓存,结果发现无法读取。比如,某个图像文件的路径如下: /var/mobile/Containers/Data/Application/7F2BA3EA-B7DF-427B-99AF-FBA1457B0826/Documents/31BB7F17-4E39-4E23-8A9B-FB35DE4D2A82.jpg 没有发生使用[UIImage imageNamed:]的错误,使用了正确的方法,[UIImage imageWithContentsOfFile:(NSString *)path]。我Google 了一番,没发现正确的解答,搜索出来的都是采用了前面的错误方法。有人遇到过这个问题吗?
这个问题在 stackoverflow 得到了好心人的解答,其实很简单。在这里搬运一下。我在这里提的这个问题没有说清楚情况,我以为我把必要的信息都说明了。还是漏掉了关键的信息,背景。背景是,我使用的是 CoreData来存储信息,我使用NSSearchPathForDirectoriesInDomains函数来获取 app 的目录路径,再加入文件名,把这类的绝对地址:/var/mobile/Containers/Data/Application/7F2BA3EA-B7DF-427B-99AF-FBA1457B0826/Documents/31BB7F17-4E39-4E23-8A9B-FB35DE4D2A82.jpg硬编码写入了数据库,在其他地方再读取出来,但是,从 iOS8开始,NSSearchPathForDirectoriesInDomains得到的目录信息,比如这个7F2BA3EA-B7DF-427B-99AF-FBA1457B0826,每次运行 app 都会变化,所以造成了我第一次运行正常后面就出错的情况。抱歉我漏掉了关键信息。