私は現在、スタンフォード・イオスのチュートリアル・シリーズを見てスイフトを勉強しています。講師はファーストクラスでAnyObjectを使用すべきではないと述べました。私はちょうどそれの背後にある理由は何ですか?それは悪いコーディングの練習ですか?他の理由があるのでしょうか?助けをあらかじめありがとう!AnyObjectを使用しない理由は何ですか?
0
A
答えて
0
AnyObject
それはObjective-Cでid
に類似しているクラス(または参照型)のいずれかの種類を意味します。これは、すべてのクラスが暗黙的に準拠するプロトコルです。
問題は、コンパイラがコンパイル時にどの種類のオブジェクトであるかを知らないことです。つまり、メソッドを間違ったオブジェクトに送信するアプリケーションを簡単に構築できます。
通常、この種の例外は、NSObject
サブクラス「unrecognized selector sent to instance XXXXXX
」でクラッシュします。
Swiftは厳しいタイピングが好きです。問題が発生する前に問題を修正できるので、これは本当に役立ちますが、オブジェクトをAnyObject
と定義するとすべてになります。
関連する問題
- 1. Angular CLIを使用しない理由は何ですか?
- 2. コマンドライン - 「タッチ」を使用できない理由は何ですか?
- 3. パスワードハッシュには何を使用しますか? jBCryptを使用しない理由は何ですか?
- 4. すべてのクエリでストアドプロシージャを使用しない理由は何ですか?
- 5. 参照にdynamic_castのアドレスを使用しない理由は何ですか?
- 6. HTML 5 doctypeの使用を開始しない理由は何ですか?
- 7. iOS開発にC++ 0xを使用しない理由は何ですか?
- 8. SQLAlchemyよりSQLObjectを使用しない理由は何ですか?
- 9. 私は更新方法を使用できない理由は何ですか?
- 10. requestMatchers()。antMatchers()を動詞なしで使用する理由は何ですか?
- 11. プラグインなしでpostcss-loaderを使用する理由は何ですか?
- 12. Pythonで '//'を使用する理由は何ですか?
- 13. Linux用のDirectX APIがない理由は何ですか?
- 14. NHibernateがSQLを実行しない理由は何ですか?
- 15. インターネットエクスプローラがセッションクッキーを保存しない理由は何ですか?
- 16. ディレクティブがクラスを設定しない理由は何ですか?
- 17. MFC CArrayでは、異なるデフォルトテンプレートタイプを使用する理由は何ですか?
- 18. l18nにドメインを使用する理由は何ですか?
- 19. Spring Batch Job Repositoryを使用する理由は何ですか?
- 20. リストを使用する理由は何ですか?
- 21. Javaコンテナを使用する理由は何ですか?
- 22. Socket.ioを使用する理由は何ですか?
- 23. パーサーコンビネータを使用する理由は何ですか?
- 24. OpenJDKを使用する理由は何ですか?
- 25. Ruby on Railsを使用する理由は何ですか?
- 26. jsonpを使用する理由は何ですか?
- 27. ASP.NET MVC - App_Themesを使用する理由は何ですか?
- 28. Camel XMLルートを使用する理由は何ですか?
- 29. Angular2 i18n:XLIFFを使用する理由は何ですか?
- 30. Integer.toString()を使用する理由は何ですか?
型を厳しく指定すると、コンパイラがキャッチできるエラーが多くなります(実行時にクラッシュしない)。 – HAS