2011-08-17 3 views
2

バイト配列を使用して(4840バイト)のNsdataを格納しています.Number配列のインデックスにあるデータにアクセスする必要があります。インデックスを使用してバイト配列から情報にアクセスする

[Bufferdata appendBytes:&data length:len]; 
Byte *byteArray = (Byte *)[data bytes]; 

for(int i=0;i< sizeof(byteArray);i++) 
**NSLog(@"BYTES %@",[byteArray objectAtIndex:i])**; 

それはBADアクセス

答えて

0

あなたが[data bytes]から取り戻すbyteArrayポインタを与えているが、生のバイトではなく、オブジェクトへのポインタへのポインタです。オブジェクトを指していないので、それを使用して[byteArray objectAtIndex:i]のようなメッセージを送信することはできません。代わりに、あなたのような何かをする必要があります。

for(int i=0;i< sizeof(byteArray);i++) 
    NSLog(@"BYTES %c", byteArray[i]); 
+0

おかげ@Caleb、PACKETの繰り返しについてのIDEA - 2011-08-17 11:48:29.939 [2383:207] BYTES 2011-08-17 11: 48:30.648 [2383:207] BYTES™ 2011-08-17 11:48:31.252 [2383:207] BYTES U 2011-08-17 11:48:31.763 [2383:207]受信パケットを含むパケット "" ) (BOOL)onUdpSocket:(AsyncUdpSocket *)靴下didReceiveData:(NSDataの*)データwithTag:(長い)タグfromHost:(NSStringの*)ホスト・ポート:(UInt16型)ポート { [靴下receiveWithTimeout:-1タグ:1] –

+0

あなたは ' NSLog()を使用すると、各メッセージの日付と時刻が自然に表示されます。 NSLog()はprintf()と同じではありません。 – Caleb

関連する問題