私は現在、スタンフォード・イオスのチュートリアル・シリーズを見てスイフトを勉強しています。講師はファーストクラスでAnyObjectを使用すべきではないと述べました。私はちょうどそれの背後にある理由は何ですか?それは悪いコーディングの練習ですか?他の理由があるのでしょうか?助けをあらかじめありがとう!AnyObjectを使用しない理由は何ですか?
0
A
答えて
0
AnyObject
それはObjective-Cでid
に類似しているクラス(または参照型)のいずれかの種類を意味します。これは、すべてのクラスが暗黙的に準拠するプロトコルです。
問題は、コンパイラがコンパイル時にどの種類のオブジェクトであるかを知らないことです。つまり、メソッドを間違ったオブジェクトに送信するアプリケーションを簡単に構築できます。
通常、この種の例外は、NSObject
サブクラス「unrecognized selector sent to instance XXXXXX
」でクラッシュします。
Swiftは厳しいタイピングが好きです。問題が発生する前に問題を修正できるので、これは本当に役立ちますが、オブジェクトをAnyObject
と定義するとすべてになります。
関連する問題
- 1. パスワードハッシュには何を使用しますか? jBCryptを使用しない理由は何ですか?
- 2. すべてのクエリでストアドプロシージャを使用しない理由は何ですか?
- 3. SQLAlchemyよりSQLObjectを使用しない理由は何ですか?
- 4. iOS開発にC++ 0xを使用しない理由は何ですか?
- 5. 参照にdynamic_castのアドレスを使用しない理由は何ですか?
- 6. HTML 5 doctypeの使用を開始しない理由は何ですか?
- 7. Linux用のDirectX APIがない理由は何ですか?
- 8. Pythonで '//'を使用する理由は何ですか?
- 9. インターネットエクスプローラがセッションクッキーを保存しない理由は何ですか?
- 10. NHibernateがSQLを実行しない理由は何ですか?
- 11. MFC CArrayでは、異なるデフォルトテンプレートタイプを使用する理由は何ですか?
- 12. ASP.NET MVC - App_Themesを使用する理由は何ですか?
- 13. Socket.ioを使用する理由は何ですか?
- 14. Integer.toString()を使用する理由は何ですか?
- 15. Ruby on Railsを使用する理由は何ですか?
- 16. l18nにドメインを使用する理由は何ですか?
- 17. jsonpを使用する理由は何ですか?
- 18. 何らかの理由で汎用クイックソートが機能しない
- 19. Thread.join()を使用しない理由
- 20. 4GBの制限を除き、Redis 32bit(64bitではなく)を使用しない理由は何ですか?
- 21. Boost :: shared_ptrsを使用しない理由はありますか?
- 22. JSONPを使用しない理由はありますか?
- 23. C#でバイト/ショートなどを使用する理由は何ですか?
- 24. カスタムRESTシリアライザが機能しない理由は何ですか?
- 25. WF4で代理人を使用する理由は何ですか?
- 26. CMSを使用しないコンテンツ管理、ベストプラクティスは何ですか?
- 27. <?>をJava Genericsで使用する「良い」理由は何ですか?
- 28. クラスをインスタンス化するために "new"演算子を使用する必要がある理由と使用しない理由は何ですか?
- 29. どのFacebookログインボタンを使用しますか?その理由は何ですか?
- 30. 新しいプロジェクトがLogbackではなくlog4jを使用する理由は何ですか?
型を厳しく指定すると、コンパイラがキャッチできるエラーが多くなります(実行時にクラッシュしない)。 – HAS