我正在使用以下代码在单独的线程中将图像写入我的应用程序目录
for (int j =0; j<[sorted count]; j++) {
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:[sorted objectAtIndex:j]]];
UIImage *image = [UIImage imageWithData:data];
if (image!=nil) {
NSLog(@"%@",[sorted objectAtIndex:j]);
[images addObject:image];
}
}
和
for (int k=0;k<[images count];k++)
{
NSString *temp = [[sorted objectAtIndex:k]lastPathComponent];
NSString *imagePath = [dataPath stringByAppendingPathComponent:temp];
NSData *data = UIImageJPEGRepresentation([images objectAtIndex:k], 1.0f);
[data writeToFile:imagePath atomically:YES];
}
但奇怪的是,最后两张图片没有被写入 我已经尝试了所有东西,但似乎没有用。 有人对此有任何想法吗?
答案 0 :(得分:0)
不确定是什么原因导致您的问题,但UIKit
不是线程安全的,所以这可能是原因。您可以尝试在主线程上执行代码以解决问题(并检查它是否正确),然后,如果我的猜测是正确的,请寻找解决方法。
在寻找解决方法时,performSelector:onMainThread:可能有所帮助。