我正在尝试实现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
的创建闭包中对self
使用Single
捕获,因此,除非您对Doctor
对象持有强引用,否则一旦离开分配上下文,它就会被释放。