一意の要素のみを追加する Array の単純な拡張機能を作成しました。オプションの配列を操作するまでは問題なく動作します。それ以来、エラーが発生し続けています
Type 'Event?' does not conform to protocol 'Equatable'
イベントクラス
import RealmSwift
class Event: Object,Equatable {
dynamic var id = ""
}
func ==(lhs: Event, rhs: Event) -> Bool {
return lhs.id == rhs.id
}
拡大
extension Array where Element : Equatable {
mutating func appendUniqueContentOf(elements:[Element]){
for ele in elements {
if (!contains(ele)){
append(ele)
}
}
}
}
使用法
var newEvents:[Event] = someEvents()
var events = [Event?]()
events.appendUniqueContentOf(newEvents)
質問
この状況がわかりません。Event
クラスはそのプロトコルに準拠しています。他の機能の組み合わせも追加しようとしまし==
たが、成功しませんでした。
この問題をどのようにアプローチすればよいかわかりません。それは私の拡張子の問題ですか?どのように適切にアプローチすればよいですか?正しい道を教えていただけますか?