问题标签 [nscompoundpredicate]

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 投票
3 回答
8310 浏览

objective-c - NSCompoundPredicate

我正在尝试UITableView's使用UISearchDisplayControllerand过滤数据NSCompoundPredicate。我有一个带有 3 的自定义单元格UILabels,我想在搜索中全部过滤,因此NSCompoundPredicate.

但是,当我这样做时,编译器会警告我:

使用“NSPredicate *”类型的表达式初始化“NSCompoundPredicate *_strong”的不兼容指针类型

我在网上看到的每个例子都做同样的事情,所以我很困惑。该NSCompoundPredicate orPredicateWithSubpredicates:方法采用(NSArray *)最后一个参数,所以我真的很困惑。

怎么了?

0 投票
2 回答
2967 浏览

ios - NSCompoundPredicate 混合 AND 和 OR

我已经开始使用NSCompoundPredicate来组合我的谓词,但是有一个问题。

这是一个谓词的示例:

Aircraft是 的子类NSManagedObject。这个谓词很好用,我只是遍历一些Aircraft对象,并将每个对象添加到谓词中,所以如果飞机 1 或飞机 2 或等...

我为几个属性执行此操作,代码与上面相同,但为不同的关系创建谓词等。基本上,用户可以过滤他们看到的数据,例如哪架飞机。

无论如何,一旦我为每一个都建立了一个谓词,我就会像这样组合它们:

这一次,AND用来组合它们。但是,使用此谓词根本不会过滤我的数据。他们单独工作,但在最后一行中没有一次组合在一起。任何想法为什么?这就是我需要解决的问题。

我有一种预感,会不会是它在创造这个:aircraft1 OR aircraft2 OR ... AND ... pilot1 OR pilot2 OR...

通常您需要在每个位周围加上括号,例如在飞机和飞行员周围将它们分开,但复合材料不这样做吗?

实际上我得到的是:

我需要什么(我认为):

无论如何,有什么想法吗?谢谢。

编辑:

predicateFinal记录为:TRUEPREDICATE。不多,但显然是 TRUEPREDICATE:一个总是评估为 TRUE 的谓词,并且是一个谓词布尔值。天知道为什么要退回那个?!想必返回 true 就是为什么 fetch 结果没有视觉变化?当返回时没有变化,所有对象都被获取。

编辑2:

现在真正的进步。我已经解决了battery对象作为 NSSet 对多关系的一部分但执行ANY battery. 但它揭示了下一个问题(可能是一直以来的问题)。

0 投票
1 回答
37 浏览

nspredicate - How can I get NSManagedObject from NSExpression?

I have this predicate:

How can I restore NSManagedObject from comparisonPredicate.rightExpression.constantValue

0 投票
1 回答
43 浏览

core-data - 如何在 nsFetchRequest 中创建通过不同实体的两个参数过滤的复合谓词

我的数据模型的一些背景信息:

我目前通过 fetchrequest 生成项目列表:

这会生成所有项目的列表。我想过滤与特定制造商有关系的项目。所以我在所有项目的列表之后添加了一个谓词,它按 selectedManufacturer 排序。

这可行,但会抓取很多将被过滤掉的项目。对于大型数据集,我假设它会变得越来越慢,因为它会搜索所有项目,而不仅仅是与一个制造商相关的项目。我想过滤初始“rankingRequestForItem”方法中的项目。

是否可以将上面的谓词与顶部谓词一起移动并创建一个复合谓词?

0 投票
1 回答
2633 浏览

core-data - 在 Swift 中从数组值构建 NSCompoundPredicate

项目清单

所以我试图在 Swift 中设置一个具有多个条件的请求。SQL 等价于:

我有一个字符串数组,我正在尝试遍历每个字符串以创建一个 subPredicate,将其添加到 CompoundPredicate,然后使用该 CompoundPredicate 创建一个获取请求:

但是,它在 var subPredicate 行失败..

谢谢!

0 投票
1 回答
344 浏览

ios - 复合谓词不返回结果

我被这个问题困扰了一段时间,现在我似乎想不出一种方法来解决这个问题。我会尽量解释清楚。

我的核心数据模型中有 3 个实体。工作场所患者移交

在此处输入图像描述

一个Workplace可以有多个Patient。一个Patient也可以属于多个Workplace

患者可以进行一次切换反之亦然。

在应用程序中,向用户显示工作场所列表。当用户选择一个工作场所时,我需要获取一组患者,这些患者属于该所选工作场所并且今天有交接。由于患者可以有多个移交,因此患者的记录可能重复,这没关系。

这就是我现在正在做的事情。首先,我检索所选用户的 Workplace 对象。然后我遍历它的患者并提取患者对象的 ID 并将它们收集到一个数组中。然后我传递患者 ID 数组和日期以过滤掉在给定日期有移交的患者。

这是des过滤的方法。

和方法转换对象getStartDate()并获取其开始时间和结束时间以获取日期框架。我让它们在其他一些地方使用过,它们可以工作。这是关于它的详细解释。getEndDate()NSDate

无论如何,我的loadHandovers()方法返回 0 个结果。不可能,因为当我插入数据时,我可以看到今天的移交。下面是从核心数据执行的 SQL 查询。

谁能告诉我我的谓词是否有问题?或者如果有不同的方法可以完全解决这个问题?我真的很感激。

谢谢你。

0 投票
1 回答
1634 浏览

ios - NSCompoundPredicate error in Xcode 6.1

Back in Xcode 6, in a project using Core Data I had the following line. It worked fine.

predicate and datePredicate are of NSPredicate type.

Yesterday I updated to Xcode 6.1 and now this above line gives this error Could not find member 'AndPredicateType'. Specifying the entire value like this NSCompoundPredicateType.AndPredicateType didn't work either.

Then I changed the line to use its convenience method line below.

Now I get a new error Cannot convert the expression's type '()' to type 'NSPredicate?'. I don't understand why. The documentation doesn't show any deprecations or changes to NSCompoundPredicate either.

Can anyone please tell me how to correct this?

Thank you.

0 投票
1 回答
1289 浏览

swift - NSCompoundPredicate 和 Cloudkit

我正在尝试使用 Cloudkit 使用复合谓词来执行此操作,但 Xcode 错误显示“意外表达式”。有人知道我的代码有什么问题吗?感谢任何帮助!

0 投票
2 回答
66 浏览

ios - 获取多对多关系包含所有术语的实体

我有一个带有 Verse 实体的模型,该模型与 Word 实体具有多对多关系。

我想找到包含用户正在搜索的所有单词的经文。

我猜它可以用一个谓词来完成

这可以使用某种类型的 word-> Verse 索引,以避免将每节经文的单词与 term1 进行比较吗?

如果不是,应该如何更改(模型或)谓词以使此获取更有效?

0 投票
2 回答
438 浏览

ios - NSCompoundPredicate 构造

假设我在数组中有这个谓词feedDays数组:

我需要用这个statusPredicates数组与它:

如何将这些组合到一个查询中?我假设我必须使用 NSCompoundPredicate 但我不知道如何将它与两个谓词数组结合在一起。