2012-01-06 2 views
1

申し訳ありませんこれまでに回答がありましたが、しばらく検索しても何も見つかりませんでした。 私は、存在しないオブジェクトのメソッドを呼び出すとクラッシュすることに慣れています。 しかし、実際のオブジェクトに接続されていないIBOutletがxibで宣言されている場合、クラッシュのイベントなしでメッセージを送信できます。 正確にはどうなりますか?存在しないIBOutletがアプリケーションをクラッシュさせないのはなぜですか?

答えて

0

あなたが起こる可能性があり、いくつかのものを使用しているココアランタイムのバージョンによって:

IBOutletがメッセージを送信しますが、レシーバ(?NIL)以来、それを理解していない例外がスローされますが、捕らえられますコンソールはこれを通知するメッセージを表示します。

IBOutletは最初に[object respondsTo:@SEL(selector)]をチェックし、falseの場合は何もしません。

XIBオブジェクトは、メッセージ代行メッセージ(ゲッター)をインターステートされていないため、呼び出さない。

関連する問題