현재로드 된 클래스 파일을 확인하기 위해 시뮬레이터가로드하는 현재 클래스 파일 NSLog
을 원합니다. 어떤 매개 변수를 코딩해야합니까?현재 클래스 파일 표시
가능합니까?
감사합니다.
현재로드 된 클래스 파일을 확인하기 위해 시뮬레이터가로드하는 현재 클래스 파일 NSLog
을 원합니다. 어떤 매개 변수를 코딩해야합니까?현재 클래스 파일 표시
가능합니까?
감사합니다.
전 처리기 지시문 __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
그것, 마지막 질문 하나만 주셔서 감사합니다. __FILE__은 전체 경로가 아닌 파일 이름 만 줄일 수 있습니까? –
다음과 같은 방법으로 스레드를 수행 할 수 있습니다. http://stackoverflow.com/questions/8487986/file-macro-shows-full-path –
컴파일 된 코드의 작동 방식에 대해 혼란스러워합니다. 아마도 당신이 성취하고자하는 것을 더 자세하게 설명 할 수 있으며, 우리가 그것을 도와 줄 수 있습니다. 원본 파일이 기계어로 변환되었으므로 응용 프로그램에 원본 파일의 내용을 나열 할 수 없으며 응용 프로그램에는 사용자가 입력 한 원본 텍스트에 대한 레코드가 없기 때문에 일반적으로 빌드 된 응용 프로그램에서 소스 파일의 내용을 나열 할 수 없습니다. – user1118321