我从 Parse
下载图像,有时获取结果比图像得到的错误更多。这是我用来下载图像的代码:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
*PFQuery *query = [PFQuery queryWithClassName:albumToLoad];
NSArray *objectsPFFounded=[NSArray arrayWithArray:[query findObjects]];
int count= [objectsPFFounded count];
int i=0;
while (i<count){
PFFile *userImageFile = [objectsPFFounded objectAtIndex:i][@"imageFile"];
[userImageFile getDataInBackgroundWithBlock:^(NSData *imageData, NSError *error) {
if (!error) {
if (!self.imagesGallery) {
self.imagesGallery = [NSMutableArray arrayWithObject:[UIImage imageWithData:imageData]];
}else{
[self.imagesGallery addObject:[UIImage imageWithData:imageData]];
}
}
}];
i++;
}
dispatch_async(dispatch_get_main_queue(), ^{
[self updateCollectionViewWhenBackgroundDone];
});
});
我也从控制台收到此错误:
Could not save HTTP response body to /var/mobile/Applications/D96AFE9B-17EF-4630-8608-423D721394F3/Library/Caches/Parse/PFFileCache/578df836-a12c-4e70-b389-033efa647ee5-28.jpg: Error Domain=NSCocoaErrorDomain Code=516 "The operation couldn’t be completed. (Cocoa error 516.)" UserInfo=0x16ed58a0 {NSSourceFilePathErrorKey=/private/var/mobile/Applications/D96AFE9B-17EF-4630-8608-423D721394F3/tmp/PFHTTPCommand0x16ddd220, NSUserStringVariant=( Move ),
NSFilePath=/private/var/mobile/Applications/D96AFE9B-17EF-4630-8608-423D721394F3/tmp/PFHTTPCommand0x16ddd220, NSDestinationFilePath=/var/mobile/Applications/D96AFE9B-17EF-4630-8608-423D721394F3/Library/Caches/Parse/PFFileCache/578df836-a12c-4e70-b389-033efa647ee5-28.jpg, NSUnderlyingError=0x16ee8350 "The operation couldn’t be completed. File exists"}
在获取对象之前是否要删除临时目录或缓存目录?我该如何解决这个问题?
谢谢
最佳答案
Cocoa 错误 516 表示文件已存在。在您的情况下,图像文件似乎已存在于本地缓存中。
在调用 isDataAvailable()
之前,您可以先尝试使用 getDataInBackgroundWithBlock
进行检查。
另外,我相信这是警告应该是解析中的错误。确保您使用的是最新版本的解析框架。
关于ios - 有时 Parse 不会获取我的 Parse 类的所有对象(图片下载),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22823722/