Ios Rx-Swift语法混乱
我正在阅读raywenderlich的Rx反应式编程书籍,我对Rx Swift的语法感到困惑:Ios Rx-Swift语法混乱,ios,swift,rx-swift,reactive,Ios,Swift,Rx Swift,Reactive,我正在阅读raywenderlich的Rx反应式编程书籍,我对Rx Swift的语法感到困惑: extension PHPhotoLibrary { static var authorized: Observable<Bool> { return Observable.create({ observer in DispatchQueue.main.async { if authorizationStatu
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()
})
}
}
扩展PHPhotoLibrary{
静态var授权:可观察{
返回可观察的。创建({observer in
DispatchQueue.main.async{
如果authorizationStatus()==已授权{
observer.onNext(真)
observer.onCompleted()
}否则{
observer.onNext(错误)
requestAuthorization({newStatus in
observer.onNext(newStatus==.authorized)
observer.onCompleted()
})
}
}
返回一次性物品。创建()
})
}
}
为什么代码有两个
return
语句?有人能解释一下为什么我们需要在代码中使用两个return语句吗?如果您对代码进行更好的格式化,您将看到第一个return属于static var authorized,另一个属于observable。它与RxSwift无关,只是普通的Swift语法
扩展PHPhotoLibrary{
静态var授权:可观察{
返回可观察的。创建({observer in
DispatchQueue.main.async{
如果authorizationStatus()==已授权{
observer.onNext(真)
observer.onCompleted()
}否则{
observer.onNext(错误)
requestAuthorization({newStatus in
observer.onNext(newStatus==.authorized)
observer.onCompleted()
})
}
}
返回一次性物品。创建()
})
}
}
你能回答我的这个问题吗?