2013-09-05 3 views
0

현재로드 된 클래스 파일을 확인하기 위해 시뮬레이터가로드하는 현재 클래스 파일 NSLog을 원합니다. 어떤 매개 변수를 코딩해야합니까?현재 클래스 파일 표시

가능합니까?

감사합니다.

+0

컴파일 된 코드의 작동 방식에 대해 혼란스러워합니다. 아마도 당신이 성취하고자하는 것을 더 자세하게 설명 할 수 있으며, 우리가 그것을 도와 줄 수 있습니다. 원본 파일이 기계어로 변환되었으므로 응용 프로그램에 원본 파일의 내용을 나열 할 수 없으며 응용 프로그램에는 사용자가 입력 한 원본 텍스트에 대한 레코드가 없기 때문에 일반적으로 빌드 된 응용 프로그램에서 소스 파일의 내용을 나열 할 수 없습니다. – user1118321

답변

2

전 처리기 지시문 __FILE__을 사용하여 현재 실행중인 코드의 파일 경로에 액세스 할 수 있습니다. 이 플래그는 컴파일시 설정되지만 NSLog에서 사용하려면이 값이 중요하지 않습니다.

이처럼 사용할 수 있습니다

NSLog("Log called from file %s", __FILE__); 
==> Log called from file /Developer Projects/Objective-C/Mac/test/test/AppDelegate.m 

같은 __LINE____PRETTY_FUNCTION__와 같이 사용할 수있는 다른 처리기 변수도있다

당신은 처리기 매크로를 정의하고로 사용할 수 있습니다 such :

#define NSFileLog(format, ...) NSLog(@"%s:%d :: " format, __FILE__, __LINE__, ##__VA_ARGS__) 

... 

NSFileLog(@"Test Log"); 
==> /Developer Projects/Objective-C/Mac/test/test/AppDelegate.m:20 :: Test Log 
+0

그것, 마지막 질문 하나만 주셔서 감사합니다. __FILE__은 전체 경로가 아닌 파일 이름 만 줄일 수 있습니까? –

+1

다음과 같은 방법으로 스레드를 수행 할 수 있습니다. http://stackoverflow.com/questions/8487986/file-macro-shows-full-path –