如何通过核心数据中的 NSPredicate 查找给定 NSSet 中整数的最大 id



我正在使用core data .我有两个实体。一个是会话,第二个是扫描。这里是一对多关系,意味着一个会话可以有多个扫描。

我在扫描实体中有scans_id。假设在会话实体中,我有 3 次扫描意味着 3 次扫描的NSSet。我想找出该扫描在集合中具有最大scans_id。我想从谓词开始做。

我正在使用此功能。

-(void)CallForGetMaximumScanIDInSession:(Session *)ObjTempSession
{
    NSSet *temp=ObjTempSession.scan;
    NSPredicate *predicate=[NSPredicate predicateWithFormat:@"scans_id==max(scans_id)"];
    NSSet *setTemp = [temp filteredSetUsingPredicate:predicate];
    NSArray *arrTemp=[setTemp allObjects];
    if (arrTemp.coun>0 && arrTemp.coun==1)
    {
        // arrTemp must having a single object of scan.
    }
}

它让我在谓词线上崩溃。

如果我做了错误的谓词,请告诉我。

提前谢谢。

我想这应该有效

NSSet *temp=ObjTempSession.scan;
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.scans_id == %@.@max.scans_id", temp];

你可以在这里找到类似的问题

最新更新