通常の使用では問題なく動作するように見えるアプリがあります。Clang Static Analyzer も問題を報告しません。Instruments で実行しようとすると、認識されないセレクタ例外で失敗します。
問題のある行は、次の形式の単純なプロパティ セッターです。
self.bar = baz;
何が起こっているのかを把握するために、そのすぐ上に NSLog() 呼び出しを追加しました。
NSLog(@"class = %@ responds = %d", [self class], [self respondsToSelector:@selector(setBar:)]);
self.bar = baz;
エミュレーター (Instruments なし) とデバイスでは、これはまさに私が期待するものを示しています。
クラス = Foo 応答 = 1
Instrumentsで実行すると、次のようになります。
クラス = Foo 応答 = 0
何がこれを引き起こす可能性があるのか 、私は困惑しています。おそらく、Instruments 環境にあるときに、別のメモリ ロケーションが踏みにじられているのでしょうか? これをデバッグする方法を誰かが提案できますか?