の背後で何が起こっているか@selector
は、より長いC構文の便利な構文ですか? Objective-C言語/コンパイラ?たとえば、私が@property
を呼び出すとき、引数に応じて、異なる同等のObjective-Cコードがゲッターとセッターに「生成」されることがわかります。 @selector
の裏で何が起こっていますか? Objective-Cメッセージを指定していますか?@selector構文なしでセレクタを指定する方法はありますか?@selector
0
A
答えて
3
@selector()
は、言語の一部です。 @""
のようにリテラルSEL
を指定すると、リテラルNSString
が指定されます。
@selector
はセレクタを表し、メッセージではありません。セレクタは単なる名前です。それはメッセージのほんの一部です。それは型情報も運びません。
また、@property
は何も生成しません。これは、オブジェクトが1つまたは2つのセレクタ(getterとsetter)に応答することを保証するだけです。その契約を履行するにはいくつかの方法があります。 @synthesize
はそのうちの1つです。また、必要なメソッドを手動で実装することも、@dynamic
を使用して、実行時に何とか処理されることを約束することもできます。
2
それは@selector
を使用する方が効率的だがNSSelectorFromString
は、(あなたもNSStringFromSelector
と反対のことを行うことができます)あなたはNSString
からセレクタを作成できます、あなたのタイトルで質問に答えるために。
+0
特に、 '@ selector'ディレクティブはコンパイル時にSELに変換され、' NSSelectorFromString() 'は実行時に呼び出される通常の関数です。 – Chuck
関連する問題
- 1. xcode構文に関する質問@selector
- 2. @selector
- 3. 特定のチームプロファイルにXcode Automatic Profile Selectorを設定する方法はありますか?
- 4. Jquery Selector
- 5. カスタムボタンクリック時に@selectorを介してデータを渡す方法は?
- 6. メソッドselectorによってforwardInvocationにセレクタが送信されない
- 7. UITapGestureRecognizerで@selectorの引数を渡す方法は?
- 8. アクション:@selector(showAlert :)このshowAlertメソッドでパラメータを渡す方法は?
- 9. jQuery Week Selector
- 10. jquery selector performace
- 11. Jquery using:after selector
- 12. jQuery:nth-child()selector
- 13. jQuery on Selector Issue
- 14. Jquery selector from width
- 15. Jquery selector syntax
- 16. CSS3:not()selector
- 17. JQuery CSS Selector e.fn.e.init
- 18. jquery multiple class selector
- 19. #selectorに関数を渡す
- 20. オブジェクトを@selectorに渡す
- 21. @selectorをパラメータとして渡す方法は?方法については
- 22. iPhone:ほとんどの@selector構文の違い
- 23. NSTimerで@selector経由でイベントを渡す方法
- 24. jQuery Selector ASP.NET GridView Column
- 25. NSStringのパラメータ:@selector(ActionMethod :)
- 26. クラス間で@selectorメソッドを呼び出す
- 27. jQuery selectorステートメントselectボックスオプションタグを選択する
- 28. Selector DrawableのPaddingを変更する
- 29. [imageView respondsToSelector:@selector(contentScaleFactor :)]は常にNOと等しいですか?
- 30. iframeでFacebookのfb:friend-selectorを使用できますか?
したがって、 '@selector(popViewControllerAnimated:)'は '(SEL *)popViewControllerAnimated:'とほぼ同じですか? –
それは 'SEL'ではなく' SEL * 'ですが、後者が正当な構文であれば基本的に真です。 '@" foo "は'(NSString *)foo'と同じものです。真実の大まかなバージョンについては、それは本当です。 –