gpt4 book ai didi

swift - NSPredicate:如何将 CONTAINS 与 NSDate 字段一起使用?

转载 作者:行者123 更新时间:2023-11-30 14:08:03 24 4
gpt4 key购买 nike

我想让我的搜索栏快速在(填充核心数据)表格 View 的多个字段中进行搜索。我使用的 searchPredicate 是:

Let searchPredicate = NSPredicate(format: "(itemDate contains[c] 
%@) OR (itemName contains[c] %@)", searchController.searchBar.text!,
searchController.searchBar.text!)

但是 itemDate 的类型为 NSDate,并且此谓词失败:“不能在集合中使用 in/contains 运算符 2013-12-31 23:00:00 +0000(不是集合)”

let searchPredicate = NSPredicate(format: "(stringFromDate(itemDatum)
withFormat:@\"ccc d MMMM y\" contains[c] %@) OR (itemName contains[c] %@)",
searchController.searchBar.text!, searchController.searchBar.text!)

返回'无法将函数名称'stringFromDate:'解析为支持的选择器(stringFromDate:)'所以这是一个愚蠢的猜测,当然,但也许它使我的问题更容易理解:我希望人们开始输入'nov'或'2017' 并立即获得正确的结果,就像字符串一样。

欢迎任何提示!

最佳答案

这对我有用:

 var searchPredicate: NSPredicate = NSPredicate { (AnyObject indx, NSDictionary bindings) -> Bool in

var itemN: String? = indx.valueForKey("itemName") as? String
var itemD: String = dateFormatter.stringFromDate(indx.valueForKey("itemDatum") as! NSDate)

var searchBarText: String = searchController.searchBar.text.lowercaseString

return itemN?.lowercaseString.rangeOfString(searchBarText) != nil || itemD.lowercaseString.rangeOfString(searchBarText) != nil
}

关于swift - NSPredicate:如何将 CONTAINS 与 NSDate 字段一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32100351/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com