我有一個const字符串文字被損壞。常量全局字符串文字損壞
奇怪的是,根據安裝的XCode的版本,它顯然有不同的表現(我必須做幾個實驗,然後我才能100%確認這一點),但即使它不是Xcode,我想知道原因可能是什麼。
如果完全相同的代碼運行在完全相同的手機上,但是一次運行它連接到運行Xcode 3.3.3的筆記本電腦,則會出現此問題,如果使用不同的筆記本電腦運行相同的代碼和手機XCode 4.3.2或4.4安裝然後問題不顯示。
的問題是這樣的:
HeaderFile.h
extern NSString* const kValue;
HeaderFile.m
NSString* const kValue = @"Some Value";
OtherFile.m
#import "HeaderFile.h"
...
NSLog(@"Value is: %@", kValue);
當連接到筆記本電腦的Xcode 4.3.3然後將該值記錄或觀察到全局常量調試時被損壞。
任何想法這可能是什麼?
作爲一個常量字面值,如果我的代碼中存在錯誤,它不應該被潦草寫過。
更新: 我檢查kValue的價值didFinishLaunchingWithOptions後:被調用其已經在這一點損壞,所以沒有機會爲我的代碼亂寫就可以了,即使是scribable。
閱讀此:http://stackoverflow.com/questions/4354423/explanation-of-constants – bryanmac
由於一些加載器怪癖(或由於簡單地沒有包括在內),常量的初始化程序很可能永遠不會被調用HeaderFile.m在你的應用程序中)。 –