dポイントプレゼントキャンペーン実施中!

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を調べてみたのですが、よくわからないんです。
また、参考になるようなサイトがあればおしえてほしいです。

A 回答 (2件)

> う~ん、よくわかりません。



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

この回答への補足

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

回答を見る限り、結局は、OBJECTIVE-Cらしい書き方はできないという事ですね。

補足日時:2010/10/08 11:50
    • good
    • 0

http://developer.apple.com/library/mac/documenta …

こちらの「Encoding and Decoding C Data Types」に説明があります。

この回答への補足

う~ん、よくわかりません。
objectvie-cの場合は、key付でないデータの場合は、
結局、NSCoder:encodeBytes:length:などを使って、
変換していくしかないのでしょうか。

そういった、サンプルソースは、どこかになんでしょうか~?

補足日時:2010/10/08 01:18
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!