2012-07-05 6 views
3

일부 문자열에 대해 NSLog()이 실제로 인쇄되었는지 확인하고 싶습니다.NSLog 출력을 어떻게 확인합니까?

NSLog 문장의 출력 길이를 확인하거나 문자열을 만들 수있는 방법이 있습니까? 실용적인 솔루션이 아닌 개념 증명을위한 것이므로 모범 사례를 따로 설정할 수 있습니다. 당신이 시도 다음 문자열이 널인지 확인하려면 여부를 경우

NSLog(@"%i",[string length]); 

int len = [myString length]; 
if(len == 0){ 
    NSLog(@"String is empty"); 
} 
else{ 
    NSLog(@"String is : %@", myString); 
} 

:

+2

제어하지 않는 코드에서 오는 NSLog 명령문을 캡처하려고합니까? 아니면 NSLog 명령문을 다른 것으로 대체 할 수있는 곳입니까? – gaige

+0

나는 진술을 잡으려고하고있다. –

+1

글쎄, 어떻게해야할지 모르겠다.하지만 시작점이'stdout' 파일을 검사 할 수 있다고 생각하고있다. printf처럼 NSLog가 쓰고 있다고 생각합니다. 내가 알지 못하는 것은'stdout'이 스스로를 내뿜는 지, 언제 그렇게 될지입니다. – George

답변

0

길이를 확인하십시오

if ((NSNull *)string != [NSNull null]){ 

} 
+0

이것은 나를 위해 작동하지 않습니다. 나는 NSLog에 데이터를 전달하고 있으며 null이 아닌 것을 안다. 나는 그것을 개념 증명으로 로그에서 다시 가져 오려고 노력하고 싶다. –

0

당신이 당신의 NSLog() 출력을 리디렉션 할 수 있습니다 파일. "Redirect NSLog to stdout?"을보십시오.

이것은 응용 프로그램의 NSLog() 호출에만 영향을 미칩니다.

int fd = creat ("/Users/parag/Desktop/my_log", S_IRUSR | S_IWUSR | S_IRGRP | 
S_IROTH); 
close (STDERR_FILENO); 
dup (fd); 
close (fd); 
NSLog(@"this will be written to my_log"); 
// Now you can retrieve it back from the my_log as a proof of concept 
관련 문제