我正在使用以下代码将文件保存在iPhone文档目录中
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];
NSString *mediaFile = [documentsPath stringByAppendingPathComponent:[message getMediaName]];
NSString *filePath = [documentsPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@%@", mediaFile, IMAGE_EXTENSION]];
NSError *error = nil;
[data writeToFile:filePath options:NSDataWritingAtomic error:&error];
filePath的示例为
/用户/ Umar /库/开发人员/ CoreSimulator /设备/ 8B419461-4E18-4E2F-923D-01092CA2263C /数据/容器/数据/应用程序/ AD869525-92F9-4C5A-8FCE-CF67F05F8CEA /文档/用户/ Umar /库/开发人员/ CoreSimulator /设备/ 8B419461-4E18-4E2F-923D-01092CA2263C /数据/容器/数据/应用程序/ AD869525-92F9-4C5A-8FCE-CF67F05F8CEA / Documents / 32286_1_44f74dc9d027d53bfa3e0bde9a28bf49。
到文档的路径确实存在,并且我已经通过Finder检查了。不确定为什么我遇到错误Error Domain=NSCocoaErrorDomain Code=4 "The folder “32286_1_44f74dc9d027d53bfa3e0bde9a28bf49.jpg” doesn’t exist."
答案 0 :(得分:3)
问题出在这两行
NSString *mediaFile = [documentsPath stringByAppendingPathComponent:[message getMediaName]];
NSString *filePath = [documentsPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@%@", mediaFile, IMAGE_EXTENSION]];
mediaFile
的输出是
/Users/Umar/Library/Developer/CoreSimulator/Devices/8B419461-4E18-4E2F-923D-01092CA2263C/data/Containers/Data/Application/AD869525-92F9-4C5A-8FCE-CF67F05F8CEA/Documents/32286_1_44f74dc9d027d53bfa3e0bde9a28bf49
filePath
的输出是
documentPath
+ mediaFile
+ Image Extension
问题是文档路径存在两次,这就是为什么编译器在查找路径和返回错误时会遇到问题。
我希望这会对您有所帮助。