将 objective-c 方法转换为 swift [updateSearchResultsForSearchController]
Converting objective-c method to swift [updateSearchResultsForSearchController]
我正在尝试将以下 Objective-C 方法转换为 Swift,但我遇到了一些问题。
我在使用 Swift 语法下面描述的谓词时遇到问题。
有人可以给我提示吗?
- (void)updateSearchResultsForSearchController:(UISearchController *)searchController {
// filter the search results
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains [cd] %@", self.controller.searchBar.text];
self.results = [self.data filteredArrayUsingPredicate:predicate];
// NSLog(@"Search Results are: %@", [self.results description]);
}
问候,IC
试试这个:
func updateSearchResultsForSearchController(searchController: UISearchController) {
let predicate = NSPredicate(format: "SELF contains [cd] %@", argumentArray: [self.controller.searchBar.text])
self.results = (self.data as NSArray).filteredArrayUsingPredicate(predicate)
}
let predicate = NSPredicate(format: "SELF contains[cd] %@", self.controller.searchBar.text!)
results = data.filter({ item in
predicate.evaluateWithObject(item)
})
或者更简洁的解决方案:
let predicate = NSPredicate(format: "SELF contains[cd] %@", self.controller.searchBar.text!)
results = data.filter { predicate.evaluateWithObject([=11=]) }
我正在尝试将以下 Objective-C 方法转换为 Swift,但我遇到了一些问题。
我在使用 Swift 语法下面描述的谓词时遇到问题。
有人可以给我提示吗?
- (void)updateSearchResultsForSearchController:(UISearchController *)searchController {
// filter the search results
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains [cd] %@", self.controller.searchBar.text];
self.results = [self.data filteredArrayUsingPredicate:predicate];
// NSLog(@"Search Results are: %@", [self.results description]);
}
问候,IC
试试这个:
func updateSearchResultsForSearchController(searchController: UISearchController) {
let predicate = NSPredicate(format: "SELF contains [cd] %@", argumentArray: [self.controller.searchBar.text])
self.results = (self.data as NSArray).filteredArrayUsingPredicate(predicate)
}
let predicate = NSPredicate(format: "SELF contains[cd] %@", self.controller.searchBar.text!)
results = data.filter({ item in
predicate.evaluateWithObject(item)
})
或者更简洁的解决方案:
let predicate = NSPredicate(format: "SELF contains[cd] %@", self.controller.searchBar.text!)
results = data.filter { predicate.evaluateWithObject([=11=]) }