0

当以下任何一个 NSPredicate 被自己使用时,它们会按预期返回数据。但是,当我进行复合搜索时,不会返回任何内容。我的搜索有什么问题?我正在使用 NSFetchRequest 搜索核心数据

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"File"];

NSPredicate *rootPredicate = [NSPredicate predicateWithFormat:@"fileWithContents.entityFolderRoot.object_id == %@", self.product.iqid];
NSPredicate *pathPredicate = [NSPredicate predicateWithFormat:@"fileWithContents.path == %@", self.currentFolder.path];

NSPredicate *predicate = [NSCompoundPredicate andPredicateWithSubpredicates:[NSArray arrayWithObjects:pathPredicate, rootPredicate, nil]];

request.predicate = rootPredicate;
[self performFetchWithRequest:request];
4

1 回答 1

0

查看谓词中的属性名称,您的数据结构似乎过于复杂。为什么表示文件FilefileWithContents_pathentityFolderRoot

确实,路径属性和文件夹根关系似乎是在描述一个类似的东西(某种容器),也许是同一个东西。这势必会导致意想不到的结果。

考虑重新设计您的数据模型。

于 2013-01-16T01:17:18.327 回答