Ios 使用NSOBJECT手动搜索不起作用

Ios 使用NSOBJECT手动搜索不起作用,ios,swift,Ios,Swift,当我使用NSObject var preda = NSPredicate(format: "ClientName contains[c] %@", strTemp) aryClientConvrsationList = (objSearchresult as NSArray).filtered(using: preda) as! [PIClientConversationList] print(aryClientConvrsationList) self.tableviewSupp

当我使用
NSObject

 var preda = NSPredicate(format: "ClientName contains[c] %@", strTemp)
  aryClientConvrsationList = (objSearchresult as NSArray).filtered(using: preda) as! [PIClientConversationList]
  print(aryClientConvrsationList)
  self.tableviewSupport.reloadData()
检查是否

 (objSearchresult as NSArray).filtered(using: preda) as! [PIClientConversationList]

实际返回[PIClientConversationList]

如果您的模型对象不是NSObject的子类,则无法将NSPredicate与它一起使用

NSPredicate使用@objc valueForKey:method评估对象是否通过测试。默认情况下,Swift类型不实现此方法

您可以通过在模型类中实现此方法来解决此问题:

@objc func value(forKey key: String) -> Any? {
    if key == "ClientName" {
        return ClientName
    }
    fatalError()
}

您能否将错误
显示为![PIClientConversationList]
不好,里面的内容也不好:
strTemp
?@Andrea Mugnani strTemp有文本字段值@Rahul Dasgupta错误是“'[valueForUndefinedKey:]:该类不符合密钥客户端名称的键值编码要求。”“您可以打印它吗?在进入
NSPredicate
之前。您还可以发布
PIClientConversationList
的定义吗?