gpt4 book ai didi

ios - 使用 NSPredicate 在自定义对象的 NSArray 中搜索字符串

转载 作者:行者123 更新时间:2023-11-28 16:19:08 26 4
gpt4 key购买 nike

我有如下两个类:

class City : NSObject{
var header:String? = nil
var areas:NSMutableArray? = nil //Contain array of Area

//Return array of City objects
class func generate(cityCount:NSInteger) -> NSMutableArray{...}
}

class Area : NSObject{
var title:String? = nil
var address:String? = nil
}
//Return array of Area objects
class func generate(areaCount:NSInteger) -> NSMutableArray {...}

现在,我在 View Controller 中声明了这样的城市数组:

var cities = City.generate(200)

当我使用 NSPredicate 在内部搜索 header 时,它工作得很好

let pred = NSPredicate(format: "SELF.header CONTAINS %@",searchString)
let filteredCities = self.cities.filteredArrayUsingPredicate(pred)

但是当我搜索 cities->areas->address 时(我想搜索地址)。它不工作。它总是返回 0 对象。这是我正在尝试的:

let pred = NSPredicate(format: "SELF.areas.address CONTAINS %@",searchString) //name
let filteredCities = (self.cities as NSArray).filteredArrayUsingPredicate(pred)

编辑

我只需要包含匹配地址的区域对象。我试过:

let pred = NSPredicate(format: "ANY areas.address CONTAINS %@",searchString)

这是给 City 对象和所有 area 对象。

enter image description here

提前致谢。

最佳答案

试一试

let pred = NSPredicate(format: "ANY areas.address CONTAINS %@",searchString)

关于ios - 使用 NSPredicate 在自定义对象的 NSArray 中搜索字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38696923/

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