问题标签 [nspredicate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
105635 浏览

objective-c - 使用 NSPredicate 根据 NSDictionary 键过滤 NSArray

我有一系列字典。

我想根据一个键过滤数组。

我试过这个:

这不起作用,我没有得到任何结果。我想我做错了什么。如果“SPORT”是 ivar,我知道这就是方法。我认为如果它是一把钥匙,它可能会有所不同。

但是,我无法找到示例。

谢谢


更新

我在要搜索的字符串周围添加了引号。

它仍然不起作用。


更新 2

解决了。我实际上不得不删除单引号,这似乎与指南所说的背道而驰。

我真正的问题是我有一个嵌套数组,我实际上并没有评估字典。骨头动。

0 投票
4 回答
33783 浏览

iphone - 核心数据、NSPredicate 和多对多键

我有一个核心数据模型,其中任务实体包含一个可选的多对多关系排除事件。excludeOccurrences 的属性之一是 start,它是一个 NSDate 对象。ExcludedOccurrence 实体与 Task 实体具有相反的强制一对一关系。

为了获取指定日期的任务,我需要确保指定日期不会作为任何 ExcludedOccurrence 实体的开始属性出现。因此,我尝试使用的子谓词之一是

其中 today 是今天的 NSDate 对象,仅包括日、月和年组件。所有排除的事件开始属性还仅包括日、月和年组件。

虽然这应该没问题,至少阅读 Core Data 和 NSPredicate 的文档,我收到以下错误消息:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“不支持的谓词

如果我使用等价谓词

没有抛出异常,但是代码没有按预期工作:今天发生的不应被排除的事件被排除在外。

我也不确定如何测试 excludeOccurrences == nil 的情况:以下谓词

在运行时导致异常

此处不允许使用对多键

但是,由于excludedOccurrences 关系是可选的,所以我还需要测试它是否为nil。

我该如何处理?先感谢您。

0 投票
3 回答
7812 浏览

objective-c - 如果条件不满足,编写一个返回 true 的 NSPredicate

我目前有以下代码

这将返回一个包含“-”元素的数组。我想做与此相反的操作,以便返回所有不包含“-”的元素。

这可能吗?

我尝试在不同位置使用 NOT 关键字,但无济于事。(根据Apple文档,我认为它无论如何都不会起作用)。

为了进一步做到这一点,是否可以为谓词提供一个我不想出现在数组元素中的字符数组?(数组是一堆字符串)。

0 投票
2 回答
2177 浏览

iphone - Core Data 中一对多关系的正确 NSPredicate 格式

我有一个具有一对多关系的托管对象模型 A 和 B。

对于这个特定的任务,我想检索与 B 有关系且属性与“字符串”匹配的所有 A 对象。

我试过了@"ALL bObjects.bProperty MATCHES 'string'",它导致了一个 objc_exception_throw:

似乎是什么问题?

任何人都可以告诉我正确的谓词格式吗?

0 投票
1 回答
1999 浏览

iphone - 使用 NSPredicate 对多个实体执行查找

当我将代码从 SQLite 数据库移植到 Core Data 时遇到了问题。

我使用的数据来自现有数据库,因此所有关系都使用每个表的 ID(或现在我使用 Core Data 的实体)定义。我的问题是我想查询单个表,然后使用该结果向上传播数据以获取我需要的所有其他数据。

原始数据库如下所示:

我原来的 SQL 查询是:

有什么方法可以使用 NSPredicate (或类似的东西)复制这个查询,还是我必须首先执行查找

然后使用返回的数据对数据进行另一次查找,例如:

依此类推,直到我得到我需要的所有结果?

谢谢

詹姆士

0 投票
2 回答
2581 浏览

cocoa-touch - 如何向 NSPredicate 添加连接

你如何使用NSPredicate匹配多个条件?

我有一个疑问Select * from Entity where name = "Sony" and type ="cd";
,我该如何and提供NSPredicate

0 投票
1 回答
2221 浏览

objective-c - 使用 NSPredicateEditor 编辑 NSPredicate

我可以使用 NSPredicateEditor(NSRuleEditor 的子类)轻松创建 NSPredicate。我想知道的是:

如何获取现有的 NSPredicate(由编辑器创建的)并将其重新加载到编辑器中以便我可以更改它?

编辑:我尝试了@John 的使用 setObjectValue: 的建议,但这并不太奏效。让我再解释一下我的设置:

我有一个基于 Document 的 cocoa 应用程序,并且 Document 窗口上只有一个 NSPredicateEditor。在dataOfType:error:方法中,我有:

readFromData:ofType:error:方法中,我有:

我已验证谓词已正确存档和取消存档,但在打开保存的谓词后,谓词未加载到谓词编辑器中。(是的,predicateEditor 连接为 IBOutlet)

0 投票
2 回答
981 浏览

iphone - NSPredicates 和双对 n 关系

我有一个名为 Album 的核心数据实体;专辑与歌曲实体(称为歌曲)有关系,每首歌曲都有任意数量的标签实体(在标签属性中),标签有一个名称。现在我想检查专辑中的歌曲是否包含标签;使用单个 NSPredicate。

想到的一个想法是:

但这会在运行时导致错误(“无法解析格式字符串”)。我尝试了各种变化,但没有成功。

有没有办法做到这一点?

0 投票
2 回答
2285 浏览

iphone - NSFetchedResultsController 和构造 NSFetchRequests

我已经为没有 NSFetchedResultsController 实例的 iPhone 应用程序设置了核心数据。

为此,我创建了一个模型类来封装所有核心数据请求和 NSFetchRequests/NSPredicates 的构造。

这使我的 UITableViewController 中保留了所有核心数据特定代码。

现在我想添加 NSFetchedResultsController 以使填充分段 UITableView 更容易。

我的问题是:在所有示例中,我看到实例 NSFetchedResultsController 是 UITableViewController 的 ivar。这会导致在 UITableViewController 中构造所有 NSFetchedResults 语句。

我觉得这是混乱 UITableViewController 并增加了另一个责任。

你如何处理这个问题?

使用 NSFetchedResultsController 时,您的对象图是什么样的?

你在哪里构建你的 NSPredicates?

0 投票
2 回答
5003 浏览

objective-c - 来自 filterUsingPredicate 错误的 NSMutableArray

我正在尝试使用以下代码返回我的 NSMutableArray (MessageArray) 的一个子集。MessageArray 包含一个 NSDictionary,其中一个键是 FriendStatus。我收到一个奇怪的错误,我知道这是一个 DUH 语法问题。“错误。不应忽略的无效值”。

}