核心数据 NSPredicate 不起作用[重复]
Posted
技术标签:
【中文标题】核心数据 NSPredicate 不起作用[重复]【英文标题】:Core Data NSPredicate not working [duplicate] 【发布时间】:2016-06-11 14:43:31 【问题描述】:请帮帮我没有任何具体错误,运行时停止
func fachDataById(entityName: String, colummName: String, value: Int) -> Bool
let appDeleget = UIApplication.sharedApplication().delegate as! AppDelegate
let manegeContext = appDeleget.managedObjectContext
let fetchRequist = NSFetchRequest(entityName: entityName)
print("ok fetchRequist")
fetchRequist.predicate = NSPredicate(format: "%K == %@", colummName, value)
do
let results = try manegeContext.executeFetchRequest(fetchRequist)
print(results)
return true
catch
print("Error")
return false
【问题讨论】:
尝试插入一些断点并检查您的字段,看看它们是否符合您的预期。 colummName 和 value 是您在 coredata 表中使用的预期值吗? 你调试过这个吗?你检查变量值了吗?它们有效吗? 您不能将 %@ 用于 Int 值。见this answer。 【参考方案1】:问题是 value:Int 的 %@ 格式,将其转换为 NSObject 或 AnyObject 的值,如下所示:
NSPredicate(format: "%K == %@", colummName, value as NSObject)
【讨论】:
以上是关于核心数据 NSPredicate 不起作用[重复]的主要内容,如果未能解决你的问题,请参考以下文章
CoreData 获取请求 NSPredicate 不起作用
NSPredicate 未在 CoreData 中返回 Int32
为啥 NSPredicate 和 DateComponents 不起作用