2017-04-18 1 views
0

여기 내 사용자 지정된 NSLog가 있습니다.###을 사용할 때 Xcode 컴파일러 오류 VA_ARGS__

#define NSLog(fmt, ...) printf("%s,%d\n %s\n\n", __PRETTY_FUNCTION__, __LINE__, [NSString stringWithFormat:fmt, ##__VA_ARGS__].UTF8String) 

이 로그는 다른 프로젝트에서 잘 작동하지만 현재 프로젝트에서 컴파일 타임에 4 개의 오류가 발생했습니다. __VA_ARGS__을 사용하는 경우 #define NSLog(...) NSLog(__VA_ARGS__)과 같이 성공적으로 컴파일됩니다. 아마도 Building Setting에서 발생했을 것 같습니다.

error 3

error 2

error 1

error 4

그것은 누군가가 나에게이 문제를 해결하는 데 도움이 어떤 생각을 가지고 있습니다.

답변

2

이것을 선언하는 헤더 파일이 Foundation을 가져 왔는지 확인하십시오. NSLog를 다른 곳에서 정의하지 않았는지 확인하십시오. NSLog를 다시 정의하는 것은 좋지 않습니다. 이 같은 자신의 로깅 프레임 워크를 채택하거나 정의 오프 아마 더 좋을 것 같아 :

#define MELog(fmt, ...) NSLog("%s,%d\n %s\ .... 
+1

프레임 워크 (시스템) 헤더 그렇지 않은 경우의 편집을 오염됩니다 후 NSLog'가 항상 포함되어야 할 것이다'덮어 헤더 프레임 워크. 일부 프레임 워크는 C로 작성되며'[NSString stringWithFormat]'는 거기서 작동하지 않습니다. 오류 메시지에 대한 설명입니다. – Sulthan

+0

고마워, 많이 배워라! – ovo

관련 문제