小编HBu*_*HBu的帖子

RxSwift/RxCocoa的以下示例代码有什么作用?

我想详细了解

.drive(resultsTableView.rx_itemsWithCellIdentifier("WikipediaSearchCell",
       cellType: WikipediaSearchCell.self)) 
          { (_, viewModel, cell) in
              cell.viewModel = viewModel
          }
Run Code Online (Sandbox Code Playgroud)

来自WikipediaSearchViewController.swift第47-64行.我试图提取参数来查看具体的类型签名,但重写为

    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)
Run Code Online (Sandbox Code Playgroud)

不能使用类型'(String,cellType:UITableViewCell.Type)'的参数列表调用'rx_itemsWithCellIdentifier'

对于driveArg1和

没有更多上下文,表达式的类型是模糊的

对于driveArg2.

的签名driverx_itemsWithCellIdentifier …

swift rx-swift

11
推荐指数
1
解决办法
2480
查看次数

RxSwift 订阅块未调用

我正在玩 RxSwift,但我被一个简单的玩具程序困住了。我的程序本质上包含一个模型类和一个视图控制器。该模型包含一个可观察的对象,该可观察对象在异步网络调用之后在主队列上更新,视图控制器在 viewDidLoad() 中订阅。AppDelegate初始化模型并将其传递给ViewController并触发网络请求。

class GalleryModel {

    var galleryCount: BehaviorSubject<Int>

    init() {
        galleryCount = BehaviorSubject.init(value:0)
    }

    func refresh() {
         doAsyncRequestToAmazonWithCompletion { (response) -> AnyObject! in
             var counter = 0
             //process response
             counter = 12

             dispatch_async(dispatch_get_main_queue()) {
                self.galleryCount.on(.Next(counter))
             }
             return nil
        }
    }

class ViewController: UIViewController {

    @IBOutlet weak var label: UILabel!

    var galleryModel: GalleryModel?

    override func viewDidLoad() {
        super.viewDidLoad()
        galleryModel?.galleryCount.subscribe { e in
            if let gc = e.element {
               self.label.text = String(gc)
            }
        }
   }
}

class AppDelegate: UIResponder, UIApplicationDelegate …
Run Code Online (Sandbox Code Playgroud)

ios swift rx-swift

5
推荐指数
1
解决办法
4992
查看次数

标签 统计

rx-swift ×2

swift ×2

ios ×1