2012-06-26 2 views
2

XCode를 사용할 때 (분명히) NSLog 문을 여러 변수에 넣고 메서드 실행을 추적합니다. 그러나이 경고 메시지가 계속 나타납니다 : Format String is not a string literal (potentially insecure). 나는 이것이 왜 여기에 있는지 이해하지만, 나는 또한이 경고의 20 ~ 30 개가 추적하기가 더 어려워 짐에 따라 진짜 오류가 발생하면, 나는 그것이 살아있는 쓰레기를 내게 괴롭힌다는 것을 이해한다. 특히 문자열의 모든 내용은 사용자가 아닌 시스템에 의해 정의되기 때문에 특히 그렇습니다. 이 경고를 비활성화 할 수있는 방법이 있습니까? 다음은 경고를 발생시키는 행의 예입니다.xcode에서 "형식 문자열이 문자열 리터럴이 아닙니다"경고를 제거합니다

NSLog([@"writeInfo " stringByAppendingString:[self saveFilePath:temp]]); 

답변

8

NSLog 자체에 형식 문자열에 소요, 당신은 문자열을 작성 인라인 할 필요가 없습니다. 즉, 다음을 작성하기 만하면됩니다.

NSLog(@"writeInfo %@", [self saveFilePath:temp]); 
+0

감사합니다. 이것은 두 문자열을 결합하는 모든 NSLog에서 작동합니다. 'NSLog (temp)'와 같은 일을하는 방법이 있습니까? 아니면 문자열에 추가해야합니까? – Dustin

+3

'NSLog (@ "% @", temp);'를 사용하십시오. Xcode는'temp '에'%'가 포함되어 있다면 경고하고 있습니까? 'NSLog'는 첫 번째 인수로'temp'를 사용하면 형식 지정자라고 생각할 것입니다. –

+0

그래, 그렇게 나쁘지 않아. – Dustin

관련 문제