破損している const 文字列リテラルがあります。
奇妙なのは、インストールされている XCode のバージョンによって動作が明らかに異なることです (これを 100% 確認する前に、さらにいくつかの実験を行う必要があります)。何が原因なのだろう。
まったく同じコードがまったく同じハンドセットで実行されているが、1 つの実行が 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 を使用してラップトップに接続すると、グローバル定数のデバッグ時に記録または観察される値が破損します。
これがどのようになるかについてのアイデアはありますか?
これは const リテラルであるため、コードにバグがある場合に走り書きを行うことはできません。
更新: didFinishLaunchingWithOptions: が呼び出された直後に kValue の値を調べましたが、その時点で既に破損しているため、たとえ落書き可能であっても、コードが落書きする機会はありません。