2012-03-12 9 views
2

問題は、UIImageに画像ファイルを読み込むことです。 元のファイルはファイルシステムでキャッシュされ、Cライブラリで管理されています(それについての質問)。私はそうすることができる客観-CでファイルをCでNSDataにロード

NSData *file = [NSData dataWithContentsOfFile:...]; 
[UIImage imageWithData:file]; 

しかし、どのようにそれが可能CでのObjective-Cへのファイルのデータをロードするには? Cで

私はこのようなファイルを開くことができます。

ret = fopen(name, options); 

しかし、私はNSDataのをinitにRET PTRを使用することができます任意の助け

[NSData dataWithBytesNoCopy:ret length:length_of_ret];? 

おかげでたくさん!

答えて

3

freadを使用してファイルからバイトを読み取ります。

FILE * ret = fopen(name, options); 
void *data = malloc(bytes); 
fread(data, 1, bytes, ret); 
fclose(ret); 
NSData *data = [NSData dataWithBytesNoCopy:data length:bytes]; 
+0

「バイト」とは何ですか? ret-fileのサイズ? 「読んでいない場合に、戻り値をチェックする」とはどういう意味ですか?そして、NSData deallocで解放されるデータ、または私はそれを自分で解放する必要がありますか? –

+1

bytesは、ファイルのサイズ(バイト単位)です。 NSData deallocが動作します。 NSDataはデータの所有権を取得します。 –

関連する問題