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 に答える