NSFetchedResultsController fetchedObjects 上的 NSPredicate

发布于 2024-11-26 22:07:12 字数 648 浏览 5 评论 0原文

我有一个 fetchedResultsController ,它正在拉回许多 User 对象。

我与我的 User 对象存在一对多关系,一个 User 与许多称为 sitesToUserSite 对象。

我正在尝试快速过滤我的 [fetchedResultsController fetchedObjects],执行以下操作:

NSPredicate *pred = [NSPredicate predicateWithFormat:@"sitesToUser.isActive == 0"];
NSArray *filt = [[self.fetchedResultsController fetchedObjects] filteredArrayUsingPredicate:pred];

但是,filt 数组永远不会返回任何结果。我使用哪个实体属性似乎并不重要,它永远不会在“filt”中返回任何结果。

在上面,isActive 是一个保存为 NSNumberBOOL。有什么想法吗……?

I have a fetchedResultsController which is pulling back a number of User objects.

I have a one to many relationship with my User object, one User to many Site objects called sitesToUser.

I am trying to filter my [fetchedResultsController fetchedObjects] quickly, doing:

NSPredicate *pred = [NSPredicate predicateWithFormat:@"sitesToUser.isActive == 0"];
NSArray *filt = [[self.fetchedResultsController fetchedObjects] filteredArrayUsingPredicate:pred];

However, the filt array never returns any results. It doesn't seem to matter which Entity attribute I use, it never returns any results in 'filt'.

In the above, isActive is a BOOL saved as an NSNumber. Any ideas....?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

软糯酥胸 2024-12-03 22:07:12

我明白了这一点。只需添加 ANY 函数,即可返回所有符合条件的“用户”对象:

NSPredicate *pred = [NSPredicate predicateWithFormat:@"ANY sitesToUser.isActive == 0"];

效果很好!

I figured this out. Simply add the ANY function, to return all 'User' objects that match the criteria:

NSPredicate *pred = [NSPredicate predicateWithFormat:@"ANY sitesToUser.isActive == 0"];

Works great!

遇到 2024-12-03 22:07:12

在谓词中添加“ANY”似乎确实有效。 (尽管这对我来说没有多大意义)也许它并不适用于所有情况。如果有人仍然遇到问题,这就是我首先解决它的方法:

NSPredicate *pred = [NSPredicate predicateWithFormat:@"sitesToUser.isActive == %@", [NSNumber numberWithBool:YES]];

到目前为止,这对我有用。

Adding "ANY" to the predicate really seems to work. (Even though it doesn't make much sense to me) maybe it doesn't work for all cases. If somebody still has problems, here's how I solved it in the first place:

NSPredicate *pred = [NSPredicate predicateWithFormat:@"sitesToUser.isActive == %@", [NSNumber numberWithBool:YES]];

this has worked for me so far.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文