iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 没有调用RxSwift订阅块大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在玩Rx Swift,我被一个简单的玩具程序困住了.我的程序基本上包含一个模型类和一个viewcontroller.该模型包含一个observable,它在异步网络调用之后在主队列上更新,viewcontroller在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 {
    var gallerymodel: Gallerymodel?

    func application(application: UIApplication,didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {        
        //do amazon setup        
        gallerymodel = Gallerymodel()
        if let viewController = window?.rootViewController as? ViewController {
            viewController.gallerymodel = Gallerymodel()
        }    
        return true
    }

    func applicationDidBecomeActive(application: UIApplication) {
        gallerymodel?.refresh()
    }

标签只更新一个,显示“0”.我希望标签更新两次,在第一次更新后显示“0”,在处理网络请求后第二次更新后显示“12”. dispatch_async块中的断点被命中,但似乎galleryCount丢失了它的观察者.有人知道发生了什么或如何调试这个?

最好

解决方法

如果读取这个人有兴趣.这是一个重构错误,重命名变量后我停止将observable传递给ViewController.相反,我创造了一个新的… facepalm

大佬总结

以上是大佬教程为你收集整理的ios – 没有调用RxSwift订阅块全部内容,希望文章能够帮你解决ios – 没有调用RxSwift订阅块所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。