나는 const 문자열 리터럴이 손상되었습니다. 이상한 무엇const 전역 문자열 리터럴이 손상됨
는 분명히 (내가 할 수 전에 100 % 확인이 몇 가지 더 실험을 할 수있어) 설치 엑스 코드의 버전에 따라 다르게 작동하고 있다는 것입니다,하지만 다음 Xcode를하지 않더라도 그 원인이 무엇인지 궁금하네요.
정확하게 동일한 코드가 동일한 핸드셋에서 실행되지만 하나의 실행 코드가 Xcode 3.3.3을 실행하는 랩톱에 연결된 경우 동일한 코드 및 동일한 핸드셋이 다른 랩톱에서 실행되는 경우이 문제가 나타납니다 XCode 4.3.2 또는 4.4가 설치된 경우 문제가 발생하지 않습니다.
쟁점이있다 : 글로벌 전율 손상된 디버깅 할 때 엑스 코드 4.3.3 노트북 접속
HeaderFile.h
extern NSString* const kValue;
HeaderFile.m
NSString* const kValue = @"Some Value";
OtherFile.m
#import "HeaderFile.h"
...
NSLog(@"Value is: %@", kValue);
다음 값이 기록 또는 관찰 하였다.
어떻게 생각하나요?
const 리터럴로서 내 코드에 버그가있는 경우 그 코드를 쓸어 넘겨서는 안됩니다.
UPDATE
: 나는 즉시 didFinishLaunchingWithOptions 후 kValue의 값을 조사 :라고하고 이미 그 시점에서 손상되면, 그래서 내 코드는 scribable 경우에도, 그 위에 낙서하기 위해 더 기회가 없습니다.
읽기 : http://stackoverflow.com/questions/4354423/explanation-of-constants – bryanmac
일부 로더 기발로 인해 상수의 초기화 프로그램이 호출되지 않을 가능성이 있습니다 (또는 단순히 응용 프로그램의 HeaderFile.m). –