1

我正在使用以下代码在单独的线程中将图像写入我的应用程序目录

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];

}

但奇怪的是最后两张图片没有被写入我已经尝试了一切,但它似乎不起作用。有人对此有任何想法吗?

4

1 回答 1

0

不确定是什么导致了您的问题,但UIKit不是线程安全的,所以这可能是原因。您可以尝试在主线程上执行您的代码来解决它(并检查它是否正确),然后,如果我的猜测是正确的,请寻找解决方法。

在寻找解决方法时,可能performSelector:onMainThread:会有所帮助。

于 2011-07-31T17:54:43.540 回答