मैं WikipediaSearchViewController.swift लाइनों 47-64 से विस्तारRxSwift/RxCocoa से निम्न उदाहरण कोड क्या करता है?
.drive(resultsTableView.rx_itemsWithCellIdentifier("WikipediaSearchCell",
cellType: WikipediaSearchCell.self))
{ (_, viewModel, cell) in
cell.viewModel = viewModel
}
में समझने की कोशिश कर रहा हूँ। मैं (स्ट्रिंग ठोस प्रकार हस्ताक्षर को देखने के लिए तर्क को निकालने के लिए कोशिश की है, लेकिन
let temp1 = searchBar.rx_text
.asDriver()
.throttle(0.3)
.distinctUntilChanged()
.flatMapLatest { query in
API.getSearchResults(query)
.retry(3)
.retryOnBecomesReachable([], reachabilityService: ReachabilityService.sharedReachabilityService)
.startWith([]) // clears results on new search term
.asDriver(onErrorJustReturn: [])
}
.map { results in
results.map(SearchResultViewModel.init)
}
let driveArg1 = resultsTableView.rx_itemsWithCellIdentifier("WikipediaSearchCell", cellType: WikipediaSearchCell.self)
let driveArg2 = { (_, viewModel: SearchResultViewModel, cell: WikipediaSearchCell) in
cell.viewModel = viewModel
}
temp1.drive(driveArg1, curriedArgument: driveArg2)
.addDisposableTo(disposeBag)
करने के लिए एक फिर से लिखने
driveArg1 के लिएदेता प्रकार का एक तर्क सूची के साथ 'rx_itemsWithCellIdentifier' आह्वान नहीं कर सकता ', cellType: UITableViewCell.Type) '
और
अभिव्यक्ति का प्रकार अधिक संदर्भ के बिना संदिग्ध है
driveArg2 के लिए।
drive
और rx_itemsWithCellIdentifier
के हस्ताक्षर
public func drive<R1, R2>(with: Self -> R1 -> R2, curriedArgument: R1) -> R2 {}
public func rx_itemsWithCellIdentifier(cellIdentifier: String, cellType: Cell.Type = Cell.self)(source: O)(configureCell: (Int, S.Generator.Element, Cell) -> Void) -> Disposable {}
हैं, लेकिन इस बिंदु पर स्विफ्ट वाक्य रचना मेरे लिए रफ़ू समझ से बाहर है। क्या कोई हस्ताक्षर समझा सकता है और कोड में क्या होता है?
मैं: यह बस
rx_itemsWithCellIdentifier
की वापसी प्रकार है, सामान्य भाग के साथ बदल दियाdrive
हस्ताक्षरयह सब विस्तार के साथ,
drive
के लिए प्रकार हस्ताक्षर उम्मीद है कि अधिक समझ में आता है मैं समझ गया कि किसी प्रकार का सामान्य प्रकार मेल नहीं है। और यह rx_itemsWithCellIdentifier फ़ंक्शन पैरामीटर में सामान्य प्रकार (एस: अनुक्रम प्रकार) का सामान्य प्रकार नहीं लगाया जा सकता है। –