Enthält Methode nicht richtig funktioniert und es gibt mir falsches Ergebnis, selbst wenn es mit Objekt übereinstimmt?Swift 2.2, Enthält Methode funktioniert nicht
Mein Code unten
class Generic: NSObject, NSCoding
{
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
}
Überprüfung in Viewcontroller
print(readArray.contains(generic))
if !readArray.contains(generic)
{
readArray.append(generic)
}
Ihre Klasse erbt von 'NSObject' - Sie müssen daher' isEqual' überschreiben, um Vergleiche zu machen. – Hamish
Mögliches Duplikat von [Bug mit Gleichheitsoperator und NSObjects in Swift 2.0?] (Http://stackoverflow.com/questions/31099379/bug-with-equals-operator-and-nsobjects-in-swift-2-0) – Hamish
'String (" ")' und nur '" "ist genau das gleiche und beachten Sie die Verwendung optionaler Eigenschaften und eines nicht-optionalen Initialisierers. – vadian