Swift 2.2,包含方法不起作用

达瓦尔沙阿

包含方法无法正常工作,即使它与Object匹配也给我错误的结果?

我的下面的代码

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
}

签入ViewController

print(readArray.contains(generic))
if !readArray.contains(generic)
{
            readArray.append(generic)
}
丹尼尔

选项1

原因是您的类继承自NSObject,因此,您必须实现NSObjectProtocol而不是Equatable

override func isEqual(object: AnyObject?) -> Bool {
     if let object = object as? Generic {
         return self.genericCode == object.genericCode
     }
     return false
 }

选项2

继承Equatable而不是NSObject(您可能无法使用此选项,因为您似乎需要NSCoding

请注意,在较新版本的Swift中,您可能应该使用选项3:使用Codable而不是NSCodable

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

注册不起作用-解析-Swift 2

来自分类Dev

didBeginContact在Swift 2 + SpriteKit中不起作用

来自分类Dev

swift2打印在NSView子类中不起作用

来自分类Dev

在Xcode 7 / Swift 2中播放音频不起作用

来自分类Dev

Alamofire 2.0和Swift 2-标头不起作用。看看如何解决

来自分类Dev

Swift 2 Object Mapper 类追加不起作用,结果为零

来自分类Dev

Swift 调用 IBAction 方法不起作用

来自分类Dev

Swift 方法重载推理不起作用

来自分类Dev

类方法不起作用Angular 2 Typescript

来自分类Dev

POST方法在Angular2中不起作用

来自分类Dev

Angular2/4 post 方法不起作用

来自分类Dev

tableView.reloadData()在使用Simulator的Xcode 7 beta 4和Swift2中不起作用

来自分类Dev

Azure B2C 刷新令牌功能在 iOS Swift 示例应用程序中不起作用

来自分类Dev

Swift 2数组包含对象?

来自分类Dev

创建包含mutate(x = x * 2)的函数(data,x)不起作用

来自分类Dev

如何删除所有包含“(2)”通配符的文件不起作用

来自分类Dev

路由在角度2中不起作用

来自分类Dev

onMarkerClick不起作用(v2)

来自分类Dev

SF2 RedirectResponse不起作用

来自分类Dev

Angular 2表单验证不起作用

来自分类Dev

$ {#$ 2}为什么不起作用?

来自分类Dev

EventEmitter在Angular 2中不起作用

来自分类Dev

模糊不起作用-Angular 2

来自分类Dev

Angular 2模拟响应不起作用

来自分类Dev

Webapi 2属性路由不起作用

来自分类Dev

Angular 2 NgModel不起作用

来自分类Dev

PyPDF 2解密不起作用

来自分类Dev

从追加select2不起作用

来自分类Dev

教义2 @Version不起作用