gpt4 book ai didi

iphone - 使用谓词过滤数组中对象的属性

转载 作者:行者123 更新时间:2023-11-29 11:24:15 24 4
gpt4 key购买 nike

我有一个对象数组,我想使用谓词过滤这些对象,但我一直无法弄清楚语法(或者是否不可能)。

假设对象是位置,它具有纬度经度 属性。我有一个名为 allLocations 的数组,我想生成一个新的位置数组,其中纬度属性大于 30。

当获取托管对象时,您可以简单地使用属性名称,但对于数组则不然:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"latitude > 30.0"];

不返回任何匹配项(尽管有很多纬度 > 30.0 的位置对象。

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.latitude > 30.0"];

也不好,而

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"[SELF latitude] > 30.0"];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"[location latitude] > 30.0"];

抛出异常。

我运气不好吗?

最佳答案

您正在寻找的是 NSArray 的 filteredArrayUsingPredicate: 方法。当您将上面的第一个谓词尝试传递给该方法时,它会正常工作。

值得注意的是,NSMutableArray 使用不同的方法来实现类似的效果,filterUsingPredicate:。 MutableArray 版本更改接收器,而 Array 版本返回一个新数组。

引用:
NSArray Class Reference
NSMutableArray Class Reference

关于iphone - 使用谓词过滤数组中对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4365713/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com