3

我想从网络路径下载图像。但是由于存在大文件的风险,我认为将部分 NSdata 块直接写入/附加到文档目录中的文件是一个好主意。这可能吗?我有一个异步 URLConnection 设置。它回调一个委托

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data

方法。在这种方法中,我想将到目前为止下载的“数据”直接附加到磁盘上的文件中。你能帮一点忙吗?如果这在没有低级别 C 的情况下是可行的,那将是完美的。

4

1 回答 1

7

我从来没有试过这个,但从这个苹果文档,我建议

@property (nonatomic,strong) NSFileHandle *handle;


//somewhere in a init or viewDidLoad
self.handle = [NSFileHandle fileHandleForUpdatingAtPath:filePath]

-(void)connection:(NSURLConnection *)connection 
   didReceiveData:(NSData *)data
{
    [handle seekToEndOfFile];
    [handle writeData:data];
}

-(void)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
    [self.handle closeFile]; 
} 

注意:filePath 必须是现有文件的有效路径,有很多帖子涉及创建文件。

于 2012-05-24T00:47:08.950 回答