将objective-c方法转换为swift [updateSearchResultsForSearchController]

时间:2016-03-02 02:06:46

标签: ios swift nspredicate

我正在尝试将以下Objective-C方法转换为Swift,但我遇到了一些问题。

我在使用Predicate时遇到问题,如下面对Swift语法的描述。

有人能给我一个暗示吗?

t=threading.Thread(target=get_connections())
t.start()

def get_connections(self):
    c, addr=self.s.accept()

}

问候,IC

2 个答案:

答案 0 :(得分:1)

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($0) }

答案 1 :(得分:0)

试试这个:

func updateSearchResultsForSearchController(searchController: UISearchController) {
    let predicate = NSPredicate(format: "SELF contains [cd] %@", argumentArray: [self.controller.searchBar.text])
    self.results = (self.data as NSArray).filteredArrayUsingPredicate(predicate)
}