我需要搜索某个纬度和经度区域内的房屋。我还需要这些房子与对象A至少有一个关系,其中对象A需要与对象B至少有一个关系。
以下谓词格式在返回结果时似乎非常慢:
@"latitude > %@ AND latitude < %@ AND longitude > %@ AND longitude < %@ AND (SUBQUERY(as, $a, ANY $a.bs != NULL).@count > 0)"
以下谓词格式快速返回结果,但是我必须有代码来手动检查与A的关系,以及每个A与B的关系,如果有的话:
@"latitude > %@ AND latitude < %@ AND longitude > %@ AND longitude < %@"
因此,我的问题是,当我有AND连接的多个条件时,Coredata搜索是否会评估每个条件,即使一个条件失败/不是真的?看起来好像前一个谓词花了太长时间。