通常の使用で問題なく動作するように見えるアプリがあります。 Clangスタティックアナライザは問題もないことを報告します。インストゥルメントで実行しようとすると、認識できないセレクタ例外が発生して失敗します。計測器で実行中のiPhoneアプリが認識できないセレクタで失敗する
問題のある行は、フォームの単純なプロパティのセッターである:オン
NSLog(@"class = %@ responds = %d", [self class], [self respondsToSelector:@selector(setBar:)]);
self.bar = baz;
:
self.bar = baz;
で何が起こっているかを把握するために、私はすぐにそれ以上のNSLog()の呼び出しを追加しましたエミュレータ(機器なし)とデバイス上では、これは私が期待しているものを正確に示しています:
クラス= Fooが応答= 1
インスツルメンツの下で実行している場合は、私が取得:
クラス= fooは私がこれを引き起こす可能性があるものにのように困惑= 0
を応答します。インストゥルメント環境にあるとき、おそらく別のメモリ位置が変化しているのでしょうか?誰も私がこれをデバッグする方法を提案することはできますか?
これはプロパティの観察者に通知するものではなく、バーがインスタンス変数として直接実装されていない可能性もあります。それは他の値から合成することができる。例えば、 "fullname"プロパティは "firstname"と "lastname" ivarsに格納され、それを直接バックアップするivarはありません。 –