我有两个实体叫做文件夹和文件,Folder与文件实体有一对多的关系。文件实体有一个名为completedStatus的属性,它是一个BOOL。我需要检查哪个文件都有这个completedStatus == TRUe in a specific folder.file NSOrderedSet。
为此,我尝试了这种方式,通过阅读文档,但它无法正常工作
[NSPredicate predicateWithFormat:@"completedStatus = 1 IN %@", file.note]];
所以请帮帮我。
此致 兰吉特
答案 0 :(得分:1)
这应该做你想要的:
NSArray *files = ... // your array of File objects
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"completedStatus = 1"];
NSArray *completedFiles = [files filteredArrayUsingPredicate:predicate];
更新: NSOrderedSet
没有使用谓词进行过滤的方法。但是您可以将有序集folder.file
转换为数组:
NSArray *files = [folder.file array];
然后继续如上。
或者,您可以使用谓词
在文件实体上发送获取请求[NSPredicate predicateWithFormat:@"completedStatus = 1 && folder = %@", theFolder]
假设您已将文件实体中的反向关系folder
定义为文件夹实体。