Ios 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

我正在阅读raywenderlich的Rx反应式编程书籍,我对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()
        })
    }
}
扩展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() }) } } 返回一次性物品。创建() }) } }
你能回答我的这个问题吗?