iOS 核心数据 - NSFetchRequest 和 NSPredicate 不允许双重格式?
Posted
技术标签:
【中文标题】iOS 核心数据 - NSFetchRequest 和 NSPredicate 不允许双重格式?【英文标题】:iOS Core Data - NSFetchRequest and NSPredicate not allowing double format? 【发布时间】:2013-08-22 14:45:17 【问题描述】:当我尝试获取具有特定属性的 NSManagedObject 时,我遇到了一个非常奇怪的错误。这就是我所做的:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%@ == %@", LEVEL_NAME_KEY, _levelName];
在本例中,LEVEL_NAME_KEY = @"levelName"
和 _levelName
是函数参数。
我想这样做,所以如果我更改我的键名,我可以通过仅更改 LEVEL_NAME_KEY
在标题中更改它。但它不起作用(当我执行 fetch 时它什么也不返回)。
但是,当我这样写时:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"levelName == %@", _levelName];
一切正常,我得到了正确的 NSManagedObject。
有人对此有意见吗?这是一个已知的错误吗?有什么解决办法吗?
提前致谢!
【问题讨论】:
【参考方案1】:格式应指定为:
@"%K == %@"
因为您需要区分键名和参数值(在创建谓词时被引用)。
Associated docs
【讨论】:
天哪,我怎么错过了?哈哈,也非常感谢你的链接;)以上是关于iOS 核心数据 - NSFetchRequest 和 NSPredicate 不允许双重格式?的主要内容,如果未能解决你的问题,请参考以下文章
核心数据 fetchRequest 给出 executeFetchRequest:error: <null> is not a valid NSFetchRequest
默认情况下,核心数据获取(NSFetchRequest)是不是以任何特定方式排序?