我发现用户有一个sm_owner字段。 但是,如何让用户使用sm_owner。 我的代码是这样的: [self.client getLoggedInUserOnSuccess:^(NSDictionary *result) { NSString *currentLogginedUser = [result valueForKey:@"sm_owner"]; NSFetchRequest *request = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"User" inManagedObjectContext:self.managedOjbectContext]; [request setEntity:entity]; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"sm_owner like user/%@", currentLogginedUser]; [request setPredicate:predicate]; self.user = [[self.managedOjbectContext executeFetchRequest:request error:nil] objectAtIndex:0]; } onFailure:^(NSError *error) { }]; 崩溃消息是:reason:'未实现的谓词的SQL生成(sm_owner LIKE user /“user / test”)'
我一直在研究苹果的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)的核心数据实体。 关系如下: 用户 一对多 项目 一对多 任务与您所期望的相反的关系。 我想要做的是获取当前login的用户的所有任务。 所以,我的想法是:发送与实体“任务”的获取请求。 如果拥有该任务的项目由login的用户拥有,则获取该任务并显示该任务。 很简单。 我想我应该可以在上面显示的谓词中使用点符号,但是获取请求返回nil。 有关获取请求的其他一切都很好。 如果我将格式string更改为@"project != NULL" ,则会将所有任务返回。 我只是写我的格式string不正确? 向StackMob发送提取请求时,点符号不知何故无效? 一如既往,任何帮助,非常感谢。 请让我知道是否需要更多的信息。 我现在有点太接近了,看清楚了。