我正在尝试实现RxSwift
单个可观察的:
class Doctor {
var disposeBag = DisposeBag()
func sanityCheck() -> Single<String> {
return Single<String>.create {[weak self] observer in
if self?.amICrazy() == true {
observer(.success("Yes, you are crazy"))
}else {
observer(.error(someError.notCrazy))
}
return Disposables.create()
}
}
func amICrazy() -> Bool {
return arc4random_uniform(2) == 0
}
}
但是问题self
始终是零。
你们谁都知道为什么self
为零或如何解决?
非常感谢您的帮助。
您在时使用weak
Capture forself
创建闭合Single
,因此,除非您对Doctor
对象拥有强大的引用,否则一旦离开分配上下文,它就会被释放。
顺便说一句,在最新的swift中,您可以Bool.random()
用来获取随机布尔值。
func amICrazy() -> Bool {
return Bool.random() // or just .random()
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句