2011-08-17 9 views
2

바이트 배열을 사용하여 (4840 바이트)의 Nsdata를 저장하고 있으며 바이트 배열의 인덱스에서 데이터에 액세스해야합니다. 코드가 있습니다.인덱스를 사용하여 바이트 배열에서 정보에 액세스

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

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

있지만 BAD ACCESS

답변

0

당신이 [data bytes]에서 다시 얻는 byteArray 포인터를주고 원시 바이트가 아닌 개체 포인터에 대한 포인터입니다. 객체를 가리 키지 않으므로 [byteArray objectAtIndex:i]과 같은 메시지를 보낼 수 없습니다. 대신, 당신이 그런 짓을해야합니다

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

감사 @Caleb, 패킷의 REPETITION에 대하여 어떤 생각 - 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

관련 문제