gpt4 book ai didi

ios - NSPredicate遍历关系(StackMob)

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:10:10 26 4
gpt4 key购买 nike

我也一直在搜索 Apple 的 Predicate Programming Guide 和 SO,试图确定为特定获取请求编写谓词的正确方法。

请求似乎没有遵守我尝试使用点符号来遍历关系的方式。

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Task" inManagedObjectContext:context];

[fetchRequest setEntity:entity];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"project.user == %@", self.user];

[fetchRequest setPredicate:predicate];

用户、项目和任务都是映射到 BaaS 提供程序 (StackMob) 的核心数据实体。

关系如下:用户 一对多 项目 一对多 Task 如您所料,具有反向关系。我想要做的是获取当前登录用户的所有任务。所以,我的想法是:发送一个带有实体“任务”的获取请求。在拥有该任务的项目由登录用户拥有的地方,获取该任务并显示它。很简单。

而且我认为我应该能够在上面显示的谓词中使用点表示法,但获取请求返回 nil。

关于获取请求的其他一切都很好。如果我将格式字符串更改为 @"project != NULL",我将恢复所有任务。

我只是错误地编写了我的格式字符串吗?向 StackMob 发送提取请求时,点符号是否无效?

一如既往,非常感谢任何帮助。

如果需要更多信息,请告诉我。我现在离这个有点太近了,看不清楚。

最佳答案

StackMob 不支持获取关系的属性(project.user == X 的任务)。但是,您似乎正在尝试为登录用户获取给定项目的所有任务。如果我假设登录用户是创建项目和任务的用户是正确的,则将项目架构的权限设置为“允许 sm_owner”。然后可以根据项目ID取任务(task where project IN 1234),或者根据项目ID抓取所有任务(project where projectId == 1234,使用tasks关系值)。无论哪种方式,具有该权限的提取将仅返回 sm_owner == 已登录用户的结果,因此您无需设置提取以将用户 ID 用作过滤器。希望有帮助!

关于ios - NSPredicate遍历关系(StackMob),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16110266/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com