我有一个餐厅数组,这些餐厅是具有名称、类型、位置等的对象。我如何才能只搜索餐厅名称或位置而不搜索整个数组对象?
例如我的数组有 2 个 Restaurant 对象。我只想搜索 Name 是否包含“United”。如果我搜索整个对象,两者都会因为国家/地区而出现。
[<Restaurant: 0x7fcb0ad80950, objectId: LA74J92QDA, localId: (null)> {
City = "New York";
Country = "United States";
Name = United Bakery;
RestaurantLoc = "<PFGeoPoint: 0x7fcb0af6cbc0, latitude: 40.759212, longitude: -73.984632>";
State = NY;
Street = "1 main st.";
Zipcode = 10055;
}, <Restaurant: 0x7fcb0af6cfc0, objectId: 0aKFrpKN46, localId: (null)> {
City = "New York";
Country = "United States";
Name = Wendys Bakery;
RestaurantLoc = "<PFGeoPoint: 0x7fcb0af6cd60, latitude: 40.759210, longitude: -73.984631>";
State = NY;
Street = "1 main st.";
Zipcode = 10055;
}]
这是创建对象数组的 block :
let userGeoPoint = currentLocGeoPoint
var query = PFQuery(className:"Restaurant")
query.whereKey("RestaurantLoc", nearGeoPoint:userGeoPoint, withinMiles:50)
query.limit = 2
query.findObjectsInBackgroundWithBlock {
(object: [AnyObject]!, error: NSError!) -> Void in
if object != nil {
println(object)
} else {
println("The getObject request failed with error: \(error)")
}
}
最佳答案
您可以使用filteredArrayUsingPredicate
。这是一个小例子:
NSString *searchString = @"a";
NSArray *filteredProducts = [products filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"title CONTAINS[cd] %@", searchString]];
swift :
let searchString = "text_to_search"
let predicate = NSPredicate(format: "title CONTAINS[cd] %@", searchString);
let filteredArray = array.filteredArrayUsingPredicate(predicate!);
关于ios - 在 Swift 中搜索数组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27701678/