如何在多线程中使用NSData writetoFile?

时间:2011-06-28 08:46:34

标签: objective-c multithreading file nsdata

您好我将nsdata保存到多线程文件中。

在我使用的主线程中:

[NSThread detachNewThreadSelector:@selector(DownloadImage) toTarget:self withObject:nil];

在DownloadImage方法中:

- (void)ThreadDownloadThumbImage
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    [loadThumbLock lock];
    .....//I get the NSData for my image here
    [data writeToFile:path atomically:YES];
    [loadThumbLock unlock];
    [pool release];
}

然后,在使用数据writeToFile时,我总是得到一个EXC_BAD_ACCESS异常。 数据已经下载,因为我可以使用imageWithData并在UIImageView中显示它。所以我认为这是该线程中writeToFile的问题。 那条路没有问题。

有人可以帮助我吗?谢谢!

1 个答案:

答案 0 :(得分:0)

好的我知道这是documentDirectory的问题。

我得到documentDirectory并将路径保存在extern var中。 问题是当我从NSFileManager获取该路径时,我没有使用retain。我加入了保留来解决这个问题。