【发布时间】:2016-08-01 10:49:42
【问题描述】:
我有两个类如下:
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 {...}
现在,我在视图控制器中声明了这样的城市数组:
var cities = City.generate(200)
当我使用 NSPredicate 在里面搜索标题时,它工作得很好
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 对象和所有区域对象。
提前致谢。
【问题讨论】:
标签: ios swift nsarray nspredicate