异步数据附加到ios中的文件?
Posted
技术标签:
【中文标题】异步数据附加到ios中的文件?【英文标题】:Asynchronous data append to file in ios? 【发布时间】:2012-05-24 00:36:50 【问题描述】:我想从网络路径下载图像。但是由于存在大文件的风险, 我认为将部分 NSdata 块直接写入/附加到文档目录中的文件是一个好主意。 这可能吗? 我设置了一个异步 URLConnection。 它回调一个委托
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
方法。 在这种方法中,我想将迄今为止下载的“数据”直接附加到磁盘上的文件中。 你能帮一点忙吗? 如果没有低级 C 也能做到这一点,那就完美了。
【问题讨论】:
【参考方案1】:我从未尝试过,但我建议 this apple docs
@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 必须是现有文件的有效路径,有很多帖子涉及创建文件。
【讨论】:
这个建议奏效了,谢谢。我唯一要补充的是,将 [handle closeFile] 放在该方法中是不正确的。因为在下一次调用时,由于文件将被关闭(来自上一次调用),因此无法附加下一个数据块。为此,-(void)connectionDidFinishLoading:(NSURLConnection *)connection [self.handle closeFile]; 很有用。以上是关于异步数据附加到ios中的文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何将两个图像附加到 ios 中的 mfmailcomposer 视图控制器