• 締切済み

objective-cで、バイナリの読み込みに関して。

objective-cで、バイナリの読み込みに関して。 バイナリファイルが容易してあり。 例えば Cで下のようなソースで読み込みできるとします。 typedef struct tagTTestStruct { int data1; int data2; char data3; } TTestStruct; int main() { TTestStruct testdata; FILE *fp; fp = fopen( FILENAME , "rb" ); fread( &testdata , sizeof( testdata ) , 1 , fp ); fclose( fp ); printf( "data1 = %d , data2 = %d , data3 = %d\n" ,testdata.data1,testdata.data2,testdata.data3 ); return 0; } これを、objective-cらしく書くにはどうしたらいいのでしょうか、、、 nsdataやnsarchiverを調べてみたのですが、よくわからないんです。 また、参考になるようなサイトがあればおしえてほしいです。

みんなの回答

  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.2

> う~ん、よくわかりません。 よくわからないのは、こちらのほうです。 Objective-Cのコードの中に、Cのコードは、そのまま書けるということは、ごぞんじですよね? 例示のコードも、そのまま書けますから、わざわざ「objective-cらしく書く」必要はないし、そのようなクラスもありません。 整数や構造体などを、NSDataに格納して、ファイルに書き出すにはどうすればいいか?という質問とも読めますが、どうなんでしょうか?No.1の回答に対して、「う~ん、よくわかりません。」では、どうもそうではなさそうなので、質問の真意をおたずねするしかありません。

object-saru
質問者

補足

cがそのまま使えるのは知ってますよ。 >NSDataに格納して、ファイルに書き出すにはどうすればいいか? そうではありません。 すでにWinのC#やC++で書いてあるデータがあり、 それを読み込む、データのビューアーの作成が意図です。 そのため、Cでの書き方は、しっていますが、 OBJECTIVE-Cらしい書き方をした場合には、どうなるのか? という事をお尋ねしています。 回答を見る限り、結局は、OBJECTIVE-Cらしい書き方はできないという事ですね。

  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.1
object-saru
質問者

補足

う~ん、よくわかりません。 objectvie-cの場合は、key付でないデータの場合は、 結局、NSCoder:encodeBytes:length:などを使って、 変換していくしかないのでしょうか。 そういった、サンプルソースは、どこかになんでしょうか~?