我不确定如何将多个条件“级联”到NSPredicate中。
我是Core Data的新手,不知道这是否是实现我想要做的正确方法。
这是我正在尝试做的事情:
有一个Photo对象,它与Location对象具有whereTook关系,后者与photosTookThere相反。
该照片又具有一个称为isFavourite的NSNumber属性。
我想配置一个NSFetchRequest,它将首先检查photosTookThere是否存在,如果存在,请检查每个产生的Photo对象,并仅返回那些设置为收藏夹的对象。
这是到目前为止的代码:
request.entity = [NSEntityDescription entityForName:@"Location" inManagedObjectContext:context];
request.sortDescriptors = [NSArray arrayWithObject[NSSortDescriptorsortDescriptorWithKey:@"locationId" ascending:YES]];
request.predicate = [NSPredicate predicateWithFormat:@"photosTookThere.@count != 0"];
如何将第二个条件级联到谓词中并返回正确的结果?
最佳答案
只需将每个条件放在括号内,然后将它们与AND连接即可。
[NSPredicate predicateWithFormat:@"(photosTookThere.@count != 0) AND (isFavourite == %@)", [NSNumber numberWithBool:YES]];
我还建议您将“whereTook”关系的名称更改为“location”,将“photosTookThere”的名称更改为“photos”,这更符合惯例。
关于iphone - 使用多个条件配置NSPredicate,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6004620/