2015-04-03 76 views
0

有没有办法阻止重复的RACSignal订户?通过RACSignal阻止重复的订户

现在我已经设法解决这个问题,我希望看到简化。

我有我的信号:

ExampleAPI.ProgressList().signalValue.doCompleted({() -> Void in 
    self.titleProgressCallRunning = false 
}) 

时,它的开始,我只当titleProgressCallRunning是假的订阅:

private func getTitlesProgress() { 
    if self.titleProgressCallRunning { 
     return 
    } 

    self.titleProgressCallRunning = true 

    titleProgressSignal.subscribeNextAs({ (titlesProgress:[VDLTitleProgress]) ->() in 
     self.titlesProgress = titlesProgress 

     NSNotificationCenter.defaultCenter().postNotificationName(kNotificationTitlesProgressUpdated, object: nil) 
    }) 
} 

我使用的是莫亚,因此请求只运行一旦已经。但是,如果我调用getTitlesProgress方法两次,subscribeNextAs块将被触发两次,而不使用布尔值titleProgressCallRunning

我正在寻找一个很好的解决方案来防止这种情况!

回答

0

声明:我还没有看到Swift的RAC的当前状态。

在objc的当前版本中,您只需使用RACMulticastConnection即可在用户之间共享副作用。关于它的更多信息请致电Design Guidelines