31

このエラーが何度か発生しましたが、一般的にエラーの原因は不明です。スタックオーバーフローとグーグルで1時間以上探した後、まだ答えがありません。誰か助けてくれませんか?

いくつかの具体的な回答を見てきましたが、エラーが発生した理由を示すものは何もなく、「do x」または「do y」のみです。

このエラーが一般的に発生する理由を知りたいので、コードはまだ含めていません。将来、このエラーが発生するたびにコードを修正できます。

4

7 に答える 7

11

発生する可能性のある理由はたくさんありますが、一般的には、コードの行でフラグを立てても、参照しているセレクターがオブジェクトが持っていると思われるタイプのインターフェイスにあるという証拠は見られません。

この例では、

目に見えるインターフェースエラーはありません

彼らはoperandStackを間違ったタイプで宣言しました。

これで

http://www.raywenderlich.com/forums/viewtopic.php?f=2&t=3312

セレクター名にタイプミスがありました

于 2012-04-30T17:13:31.740 に答える
2

Xcode 4.2(またはそれ以下)を使用していて、Xcode 4.3で記述されたコードを実行している可能性はありますか?4.3以降のXcodeでは、プライベートメソッドを宣言する必要はまったくなく、実装ファイルに記述されたメソッド(インターフェイスでの宣言なし)がプライベートであると想定しているだけです。しかし、Xcode <= 4.2では、これはエラーをスローし、それらのメソッドは少なくともプライベートに宣言する必要があります

于 2012-04-30T18:05:35.377 に答える
2

もう 1 つの理由は、ライブラリでカテゴリを使用していて、その他のリンカー フラグで -ObjC (または -all_load) を設定していない場合です。

于 2014-11-04T20:01:43.653 に答える
2

この問題が発生しました。私は、メソッドをインスタンスメソッドではなくクラスメソッドとして設定したことが原因でした。とてもばか。

于 2012-07-09T13:31:01.090 に答える
1

もう 1 つの一般的なエラーは、[someInstance setSomeValue :3];の書き忘れです。[someInstance someValue:3] の代わりに (<- 間違っています)。それが私に起こったことです。

于 2012-11-02T15:13:03.140 に答える