我有一个Equatable
类AnyObject尝试转换为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))
}
}
但我想投试无功value
到Equatable,这样拿到手软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)
}
此代码捕获编译错误关于通用Equatable
我怎么样我可以做正确的对于这个班的Equatable?
UPD
我想用我的Item
在UITableViewCell
在我的故事板。我不能创建通用的UITableViewCell
。如果我尝试做的项目为Generic<T: Equatable>
类,我将不得不在我的细胞对指定类型,
var items: [Item<OnlyThisHashableClass>]
但我想使用细胞项目的任何对象
你的代码为您发布什么问题? – rmaddy
您需要创建一个符合Equatable的自定义值类型。 –
用确切完整的错误信息更新您的问题,而不是一些总结。 – rmaddy