0
我想創建一個搜索欄是通過MKLocalSearch與請求搜索地址,並使用RXSwift並結合RXCocoaRXSwift flatmap從異步完成處理程序返回
到目前爲止,我已經做了以下 1.過濾器和反跳,以避免過多的請求:
let searchRes = searchBar.rx.text
.orEmpty
.filter { query in
return query.characters.count > 4
}
.debounce(1, scheduler: MainScheduler.instance)
所得串查詢是圖:ED創建MKLocationSearch然後flatMapp:ED返回MKMapItems的陣列是能夠將數組綁定到tableView的項目:
searchRes.map{query -> MKLocalSearch in let request = MKLocalSearchRequest() request.naturalLanguageQuery = query request.region = self.mapView.region return MKLocalSearch(request: request) }.flatMapLatest{search -> Observable<[MKMapItem]> in search.start(completionHandler:{(response, error) in let items: Variable<[MKMapItem]> = Variable([]) if let resp = response { //need to return the result form this // i.e. items.value = response.mapItems } //can not return from here since the request is async } }.bindTo //continue to bind to tableview
怎麼可以這樣使用RXSwift做的,我找不到任何相關的例子
謝謝你,還在探索RX深處,這部分一直沒有得到很好的documentend – EmilDo