[英]Redundant conformance of 'Generic' to protocol 'Equatable' in Swift 2.2
I am Having an error in Equatable while compilation. 编译时,Equatable出现错误。 I wanted to add find or contains method in the list to check the value.
我想在列表中添加查找或包含方法以检查值。 My Code Below
我的下面的代码
class Generic: NSObject, Equatable, NSCoding //Am Having an error - Redundant conformance of 'Generic' to protocol 'Equatable'
{
var genericCode: String?
var genericName : String?
var genericType : String?
var genericImageUrl : String?
var genericPhone: String?
var orgName : String?
override init()
{
self.genericCode = String("")
self.genericName = String("")
self.genericType = String("")
self.genericImageUrl = String("")
self.genericPhone = String("")
self.orgName = String("")
}
//Parameterzed Constructor for the Generic
init(genericCode: String , genericName: String , genericPhone: String, genericType: String, genericImageUrl : String)
{
self.genericCode = genericCode
self.genericName = genericName
self.genericType = genericType
self.genericImageUrl = genericImageUrl
self.genericPhone = genericPhone
}
required init(coder aDecoder: NSCoder) {
genericCode = aDecoder.decodeObjectForKey("genericCode") as? String
genericName = aDecoder.decodeObjectForKey("genericName") as? String
genericType = aDecoder.decodeObjectForKey("genericType") as? String
genericPhone = aDecoder.decodeObjectForKey("genericPhone") as? String
}
func encodeWithCoder(aCoder: NSCoder) {
aCoder.encodeObject(genericCode, forKey: "genericCode")
aCoder.encodeObject(genericName, forKey: "genericName")
aCoder.encodeObject(genericType, forKey: "genericType")
aCoder.encodeObject(genericPhone, forKey: "genericPhone")
}
} }
func ==(lhs: Generic, rhs: Generic) -> Bool
{
return lhs.genericCode == rhs.genericCode
}
Error has occured , Is it because i am using NSCoding and NSobject? 发生错误,是因为我正在使用NSCoding和NSobject吗?
A class inheriting NSObject
already conforms to Equatable
. 继承
NSObject
的类已经符合Equatable
。 So declaring Object: Equatable
is redundant. 因此,声明
Object: Equatable
是多余的。
However, the conformance does not mean that it has been implemented properly ( NSObject
just checks whether the pointers are the same). 但是,一致性并不意味着已经正确实现了(
NSObject
只是检查指针是否相同)。 If you wish to properly implement Equatable
for NSObject
, just exclude the protocol conformance statement ( : Equatable
), but still implement the comparison method: 如果您希望为
NSObject
正确实现Equatable
,只需排除协议一致性声明( : Equatable
),但仍然可以实现比较方法:
static func ==(lhs: Object, rhs: Object) -> Bool {
return lhs.text == rhs.text
}
According to the docs , NSObject
conforms to Equatable
: 根据文档 ,
NSObject
符合Equatable
:
Conforms To
符合
CVarArgTypeCVarArgType
CustomDebugStringConvertibleCustomDebugStringConvertible
CustomStringConvertibleCustomStringConvertible
Equatable平等的
Hashable可散列
NSObjectProtocolNSObjectProtocol
... therefore, like your error says, conformance to Equatable is redundant... ...因此,就像您的错误所说,符合Equatable是多余的...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.