手动搜索无法与NSOBJECT一起使用

时间:2017-12-13 06:39:16

标签: ios swift

当我使用NSObject

尝试此代码时,我的应用程序将崩溃
 var preda = NSPredicate(format: "ClientName contains[c] %@", strTemp)
  aryClientConvrsationList = (objSearchresult as NSArray).filtered(using: preda) as! [PIClientConversationList]
  print(aryClientConvrsationList)
  self.tableviewSupport.reloadData()

2 个答案:

答案 0 :(得分:0)

检查是否

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

实际上返回[PIClientConversationList]

答案 1 :(得分:0)

如果您的模型对象不是NSObject的子类,则不能使用NSPredicate。

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

您可以在模型类中实现此方法解决方法

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