2012-02-07 2 views
3

NSData가 있고 그 내용을 순수 비트로 볼 필요가 있습니다. NSLog [NSData description]을 시도했지만 NSString을 반환합니다. 어떤 제안? 에 정지 한 후 ...비트로 NSData의 내용을 표시하는 방법은 무엇입니까?

void* bytes_memory = [yourData bytes]; // set breakpoint after this line 

: 바이트

+0

'쇼'로 무엇을 의미합니까? 디버깅 목적으로 또는 앱의보기에 표시하십시오. iOS 용 16 진수 편집기 에서처럼? –

+0

바이트 또는 비트 질문을 명확히하시기 바랍니다 ???? 잘 바이트 대답을 게시했습니다 –

+0

왜 비트 볼 필요가 있니? 16 진수 바이트 (모든 프로그래머가 직관적으로 해석 방법을 알아야 함)은 대부분의 목적에 완벽하게 충분해야합니다. –

답변

7

사용이

const char *byte = [data bytes]; 
NSLog(@"%s",byte); 

이 비트

const char *byte = [data bytes]; 
unsigned int length = [data length]; 
for (int i=0; i<length; i++) { 
    char n = byte[i]; 
    char buffer[9]; 
    buffer[8] = 0; //for null 
    int j = 8; 
    while(j > 0) 
    { 
     if(n & 0x01) 
     { 
      buffer[--j] = '1'; 
     } else 
     { 
      buffer[--j] = '0'; 
     } 
     n >>= 1; 
    } 
    printf("%s ",buffer); 
+0

흠, 내가 해결책을 찾으려고 할 때 콘솔에 비트가 아닌 이상한 캐릭터가 보인다. – Centurion

+0

그래서 내가 질문을 변경하라고 말한 이유는 ... 비트가 아닌 바이트입니다. 'NSData가 있고 순수 바이트로 내용을 볼 필요가 있습니다.'그것은 여러분의 라인이 어쨌든 업데이트 된 코드를 보낼 것입니다. 질문을 정정하십시오 .. –

+0

죄송합니다, 당신 말이 맞습니다. 내 질문을 수정했습니다 :) – Centurion

2

당신은 메모리 브라우저 창에서이 바이트를 볼 수 있습니다입니다 중단 점은 로컬 변수 창에서 bytes_memory을 찾은 다음 마우스 오른쪽 버튼을 클릭하고 View memory of *bytes_memory을 선택하십시오.

콘솔 비트 (10011100 형식)로 인쇄하려면 데이터를 해당 문자열 표현 (here 예)으로 변환해야합니다.

관련 문제