草庐IT

observer-pattern

全部标签

swift - 如何为了测试而覆盖 Observable<T>?

我们正在使用Swift2.x(最新)并希望对我们的代码进行BDD(单元测试)。顺便说一句,我们正在使用RxSwift也。我们的自定义测试stub中不会调用我们重写的方法。我们的代码:protocolSomethingDeliverable{funcfetchSomething(somethingId:String,associatedList:String)->Observable}extensionSomethingDeliverable{funcfetchSomething(somethingId:String,associatedList:String)->Observable{

ios - ReactiveX 如何暂停 observable

我正在使用ReactiveX在iOS/Swift中(RxSwift)。假设我有一个可观察对象:letdataUpdates=...我订阅的:dataUpdates.subscribeNext({datain//updatetableViewwithdata//maybemovetoadifferencecellwithananimation})如果我在制作动画时收到更新,我不想在动画结束之前收到下一个更新(我也不想丢失动画期间发生的更新)。所以我只需要暂停dataUpdatesobservable的发射。我怎样才能做到这一点? 最佳答案

swift - react swift : How to observe UIView isHidden?

如果AUIView可见,我想显示BUIView。我在objective-c中使用了ReactiveCocoa2,并试图找到一种类似的方法来观察ReactiveSwift中UIView的isHidden属性。我仍在尝试学习框架及其用法,但无法想出一个好的解决方案。如果有人能给我建议,我将不胜感激。 最佳答案 这是来自ReactiveSwiftreadme的KVO示例://Aproducerthatsendsthecurrentvalueof`keyPath`,followedby//subsequentchanges.////Term

ios - RxSwift 从 Observable 序列中的一项获取值

我正在尝试逐渐将我的应用程序转换为RxSwift/MVVM。但我认为我做错了一些事情。在这个例子中,我有一个包含这些特定信息的静态表。letitens=Observable.just([MenuItem(name:GlobalStrings.menuItemHome,nameClass:"GPMainVC"),MenuItem(name:GlobalStrings.menuItemProfile,nameClass:"GPMainVC"),MenuItem(name:GlobalStrings.menuItemLevels,nameClass:"GPLevelsVC"),])当用户选择

ios - Rx swift : Chain Completable to Observable

我想将一个Completable链接到一个可观察元素。调用flatMap后,onCompleted和onError回调似乎没有在订阅上调用。varuser=PublishRelay()funcfetchUserInformation(_userId:String)->Completable{returnCompletable.create{observerinapiService.fetchInformation(for:userId,completion:{responseinifletname=response?.name{user.accept(User(name:name))o

swift - 结合两个 Observable<Void>

我仍然是一个被动的新手,我正在寻求帮助。funcdoA()->ObservablefuncdoB()->ObservableenumResult{caseSuccesscaseBFailed}funcdoIt()->Observable{//startbothdoAanddoB.//Ifbothcompletethenemit.Successandcomplete//IfdoAcompletes,butdoBerrorsemit.BFailedandcomplete//Ifbotherrorthenerror}上面是我想我想要的......初始函数doA()和doB()包装网络调用所以

swift - Rx swift : Extra argument 'onError' when subscribing on an Observable<String>

我有以下代码:letfetcher=DiagnosticFetcher(commandSender:sender)fetcher.fetch().observeOn(MainScheduler.instance).subscribe(onNext:{self.store.save(content:$0)},onError:{self.view.showError("Error")},onCompleted:{log.verbose("Diagnosticfetched")})它不编译:Extraargument'onError'incall.如果我使用onSuccess,我会得到同样的

pattern-matching - 由于 Swift 模式匹配中的顺序导致的意外结果

对于“这不应该行吗?”的问题,我们深表歉意。问题。但我想不出更好的表达方式。enumMyEnum{caseA,B,C}lettuple=(MyEnum.C,MyEnum.A)varx:Stringswitchtuple{case(.A,_):x="(A,something)"case(_,.A):x="(something,A)"case(_,.B):x="(something,B)"case(.C,.C):x="(C,C)"default:x="default"}x//->"default"x的计算结果为"default",这意味着采用了默认分支。但是,我期望"(something,

swift 4 : pattern match an object against a tuple (Tuple pattern cannot match values of the non-tuple type)

我有一个包含几个字段的自定义结构,我想在快速switch语句中对其进行模式匹配,这样我就可以通过将其中一个字段与另一个字段进行比较来自定义匹配正则表达式。例如鉴于这种结构:structMyStruct{letheader:Stringlettext:String}我喜欢像这样进行模式匹配:switch(someInstance){case("h1","[a-z]+"):...case("h1","0-9+"):...}我尝试使用如下模式匹配函数让它工作:func~=(pattern:(String,String),value:MyStruct)->Bool{returnvalue.he

ios - 将 UIApplicationDelegate 方法转换为 RxSwift Observables

在RxSwift/RxCocoa中,您可以为委托(delegate)创建响应式(Reactive)包装器(例如UIScrollViewDelegate或CLLocationManagerDelegate),以便为某些委托(delegate)方法启用Rx可观察序列。我正在尝试为UIApplicationDelegate方法applicationDidBecomeActive:实现这个到目前为止,我尝试的方法非常简单,类似于RxCocoa中包含的DelegateProxy子类。我创建了我的DelegateProxy子类:classRxUIApplicationDelegateProxy:D