21

私は xCode 4.3.1 を使用していますが、すぐに lldb を使用したいのですが、デバッグ情報はほとんど得られませんが、代わりに次の結果が得られ、単純な NSMutableDictionary プロパティを po-ing します。

(lldb) po _keywordCache
error: instance method 'delegate' has incompatible result types in different translation units ('objc_object *' vs. 'id')
error: instance method 'delegate' has incompatible result types in different translation units ('objc_object *' vs. 'id')
note: instance method 'delegate' also declared here
note: declared here with type 'id'
note: instance method 'delegate' also declared here
note: declared here with type 'id'
error: 2 errors parsing expression

gdb に切り替えると、常に適切な結果が得られます。
誰でもアイデアはありますか?

4

4 に答える 4

8

私の場合の問題の原因は、ここで問題となっているプロパティ「delegate」が、インスタンス変数とプロパティ宣言で微妙に異なる型として宣言されていることでした。私の場合、インスタンス変数タイプはidであり、プロパティ宣言はでしたid<SomeProtocol>

変数の検査に失敗することはないので、これをバグとしてAppleに報告します。修正は、インスタンス変数とプロパティ宣言が「デリゲート」をまったく同じタイプとして記述していることを確認することです。お役に立てれば!

于 2012-04-19T15:12:05.730 に答える
1

これが遅れていることは知っていますが、Xcode 6でこれに遭遇し、クリーンビルドフォルダーを実行する必要がありました(クリーンを選択するときにオプションを押したままにします)。

于 2014-09-23T18:14:13.790 に答える
-1

私にもそのエラーがありましたが、実際にはコードに問題はありませんでした。私がしたことは、コンソールの「グローバルブレークポイント状態の切り替え」ボタンの右側にあるボタンをクリックすることだけでした。

青い矢印のボタンです。
青い矢印のボタンです。

于 2014-05-02T20:51:53.167 に答える