0

我有两个实体,分别称为文件夹和文件,文件夹与文件实体具有一对多的关系。文件实体有一个名为 completedStatus 的属性,它是一个 BOOL。我需要检查哪些文件在特定的 folder.file NSOrderedSet 中具有此 completedStatus == TRUe。


为此,我通过阅读文档尝试了这种方式,但它不起作用

[NSPredicate predicateWithFormat:@"completedStatus = 1 IN %@", file.note]];

所以请帮帮我。

问候兰吉特

4

1 回答 1

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];

然后继续如上。

或者,您可以使用谓词对File实体发出 fetch 请求

[NSPredicate predicateWithFormat:@"completedStatus = 1 && folder = %@", theFolder]

假设您已经定义了folderFile实体到Folder实体的反向关系。

于 2013-01-25T10:30:43.827 回答