0

当我尝试获取具有特定属性的 NSManagedObject 时,我遇到了一个非常奇怪的错误。这是我所做的:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%@ == %@", LEVEL_NAME_KEY, _levelName];

在这个例子中,LEVEL_NAME_KEY = @"levelName"and_levelName是一个函数参数。我想这样做,所以如果我更改我的键名,我可以通过仅更改在标题中更改它LEVEL_NAME_KEY。但它不起作用(当我执行 fetch 时它什么也不返回)。

但是,当我这样写时:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"levelName == %@", _levelName];

一切正常,我得到了正确的 NSManagedObject。

有人对此有意见吗?这是一个已知的错误吗?有什么解决方案吗?

提前致谢!

4

1 回答 1

2

格式应指定为:

@"%K == %@"

因为您需要区分键名和参数值(在创建谓词时被引用)。

相关文档

于 2013-08-22T14:52:38.240 回答