私はAnyClass
要素(Array<AnyClass>
)の配列を持っているとき、私はremove(Element:)
を呼び出すことができるようにAnyClass
(AKA AnyObject.Type
)はEquatable
に準拠したいと思いますが、これはEquatable
に準拠するようにElement
が必要です。`AnyObject.Type`を` Equatable`に適合させるための回避策?
0
A
答えて
0
私はあなたの達成しようとしていることが可能かどうか、あるいはあなたがこのようにしてやろうとするべきかどうかは実際考えていません。
クラスは、車、ビュー、またはまったく異なるものであれ、一般に実世界のオブジェクトを表します。だから、私が作成したカスタムIクラスと同じように作成することは難しいです。
スウィフトはそれらをどのように比較するのか分かりません。何が同じになるのでしょうか。
ここで必要なものを達成する最も簡単な方法は、このアプリケーションで使用するクラスのジェネリックバージョンを表すカスタムプロトコル/インターフェイスを定義し、それぞれがそれに準拠することを保証することです。
var objs = Array<MyAppClassesProtocol>()
ともあなたがAnyObject
の代替としてAnyHashable
を使用することができスウィフト3以来remove(element:)
1
を使用します。そして、あなたのような何かを行うことができるはず。これは、Equatable
プロトコルに準拠する任意の値を表します。代わりに
var array:[AnyObject] = []
の
ちょうどそれがかもしれない(
var array:[AnyHashable] = []
関連する問題
- 1. グラフのデータラベルを回転させるためのPython PPTX回避策
- 2. iPhoneレスポンシブルデザインバグのためのCSS回避策
- 3. ブロックされたiframeの回避策
- 4. ネストされたフォームの回避策
- 5. JMenuItem.getRootPane()回避策?
- 6. ブートストラップデータターゲットバグ回避策
- 7. ExpressionChangedAfterItHasBeenCheckedError回避策
- 8. 回避策
- 9. 回避策
- 10. Canvas.toDataURL()回避策?
- 11. 回避策StackOverflowException
- 12. デザインモードプリプロセッサディレクティブ回避策
- 13. 結合の回避策の範囲
- 14. バッチパラメータの回避策%
- 15. Firebase runloop(3.0.0)の文字列の回避策の回避策
- 16. C++インターフェイスを実装するためのC++/CLIの回避策
- 17. Go select文の優先順位回避策回避策
- 18. どこでもspark implicitsをインポートするための回避策
- 19. 非同期をブロックするための回避策?
- 20. TCL 8.4 lsort -nocaseオプションを持たないための回避策?
- 21. align = "center"回避策
- 22. 回避策Firefoxアップデートアドオン
- 23. python scroll回避策
- 24. WPFアンチエイリアス回避策
- 25. ECMAScript5の新機能のためのポリフィルまたは回避策?
- 26. 部分インデックスまたはフィルタされたインデックスのためのmysqlの回避策?
- 27. JavaScriptバンドルがステージングエンベッドされている場合にプロダクションにプロモーションするための回避策
- 28. Phonegap 1.7.0 Webview URLを開くための回避策
- 29. DynamicResourceのColorAnimationの回避策
- 30. のSymfonyの回避策
がhttp://stackoverflow.com/questions/24938948/array-extension-to-remove-object-by-valueを参照してください書きます実際は重複している)。 – rmaddy
@rmaddyいいえ、これは、AnyClassの拡張がコンパイラによって許可されていないという事実に固有の質問です。つまり、AnyClassが指定したスレッドで使用されているEquatableに準拠できなくなります。 –
それを達成するためにもっと多くの努力を払う前に、影響を受けるクラスの共通分母、例えばプロトコルを見つけることができるかどうかを検討してください。 * AnyClass/AnyObjectの擬似ジェネリック*は、共通の根拠を見つけるよりも悪いです。 – vadian