自定義對象的我有兩個類象下面這樣:搜索字符串中的NSArray使用NSPredicate
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 {...}
現在,我有市陣列像這樣在我的ViewController聲明:
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)
這是給所有區域對象城市對象。
在此先感謝。
您好,感謝您的回答,但它正在崩潰的應用程序:***由於未捕獲的異常**'NSInvalidArgumentException',原因:'無法解析格式字符串「SELF areas.address CONTAINS %@「' –
檢查我的編輯它使用了'ANY'編輯的 –
。如果城市匹配中的任何區域返回整個城市對象,則過濾城市對象並返回。 –