-1 ios swift rx-swift reactive
我正在阅读raywenderlich的Rx-Reactive编程书籍,并对Rx Swift的这种语法感到困惑:
extension PHPhotoLibrary {
static var authorized: Observable<Bool> {
return Observable.create({ observer in
DispatchQueue.main.async {
if authorizationStatus() == .authorized {
observer.onNext(true)
observer.onCompleted()
} else {
observer.onNext(false)
requestAuthorization({ newStatus in
observer.onNext(newStatus == .authorized)
observer.onCompleted()
})
}
}
return Disposables.create()
})
}
}
Run Code Online (Sandbox Code Playgroud)
为什么代码中有两个return语句?有人可以解释一下为什么我们在代码中需要2个return语句吗?
如果您更好地格式化代码,则将看到第一个返回属于static var authenticated,另一个则属于可观察的。它与RxSwift无关,只是普通的Swift语法。
extension PHPhotoLibrary {
static var authorized: Observable<Bool> {
return Observable.create({ observer in
DispatchQueue.main.async {
if authorizationStatus() == .authorized {
observer.onNext(true)
observer.onCompleted()
} else {
observer.onNext(false)
requestAuthorization({ newStatus in
observer.onNext(newStatus == .authorized)
observer.onCompleted()
})
}
}
return Disposables.create()
})
}
}
Run Code Online (Sandbox Code Playgroud)