-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()
        })
    }
}
为什么代码中有两个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()
        })
    }
}