将 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=]) }