我有一Equatable
堂课
class Item: Equatable {
var value: AnyObject?
var title: String
init(title: String, value: AnyObject?) {
self.title = title
self.value = value
}
//Equatable
public static func ==(lhs: Item, rhs: Item) -> Bool {
return ((lhs.title == rhs.title) && (lhs.value === rhs.value))
}
}
但我想将 try varvalue
转换为 Equatable,以便获得软等值结果
if let lValue = lhs.value as? Equatable, // Error
let rValue = rhs.value as? Equatable { // Error
valueEq = (lValue == rValue)
} else {
valueEq = (lhs.value === rhs.value)
}
此代码捕获有关 Generic Equatable 的编译错误
我怎样才能为这门课做正确的 Equatable?
UPD
我想在我的故事板中使用我Item
的UITableViewCell
in。我无法创建通用UITableViewCell
. 如果我尝试将 Item 作为Generic<T: Equatable>
类,我将被迫在我的单元格中指定类型,
var items: [Item<OnlyThisHashableClass>]
但我想将 Item in Cells 用于任何对象