在我的iPhone应用程序中,我从网上下载一些图像。不管它是否阻塞UI线程,实际上它需要阻塞UI线程直到完全下载。完成后,我会通知用户界面将其唤醒并显示出来。NSData writeToFile在模拟器上工作,但不在设备上
我(简化)的代码是这样的:
for (int i=0; i<10; i++)
{
//call saveImageFromURL (params)
}
//Call to Notify UI to wake up and show the images
+(void) saveImageFromURL:(NSString *)fileURL :(NSString *)destPath :(NSString *)fileName
{
NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:fileURL]];
NSFileManager * fileManager = [NSFileManager defaultManager];
BOOL bExists, isDir;
bExists = [fileManager fileExistsAtPath:destPath isDirectory:&isDir];
if (!bExists)
{
NSError *error = nil;
[fileManager createDirectoryAtPath:destPath withIntermediateDirectories:YES attributes:nil error:&error];
if (error)
{
NSLog(@"%@",[error description]);
return;
}
}
NSString *filePath = [destPath stringByAppendingPathComponent:fileName];
[data writeToFile:filePath options:NSAtomicWrite error:nil];
}
当我与我的for
循环中完成,我敢肯定,所有图像都存储在本地。它在模拟器中工作正常。
但是它在我的设备上无法正常工作。 UI在图像存储之前醒来。几乎所有的图像都是空的。
我在做什么错?
有什么目标路径? – Brad
检查writeToFile返回的错误。 –
@Brad - 它是应用程序支持下的一个目录。 –