我做了一些网关/提供程序,以便在我的API中集成API,使用RX Swift,我试图在一个看起来像干净简单的方式处理分页.
基本上,函数签名看起来像这样:
func getPlaces(with location: CLLocationCoordinate2D) -> Observable<(value: [Place], next: Observable<(value: [Places], Observable<(value: [Place], next: ... ... >>
Run Code Online (Sandbox Code Playgroud)
这很快就显得不切实际,所以我尝试为此创建一个typealias:
typealias Result = Observable<(value: [Place], next: Result?)>
Run Code Online (Sandbox Code Playgroud)
所以我的函数签名看起来像这样:
func getPlaces(with location: CLLocationCoordinate2D) -> Result
Run Code Online (Sandbox Code Playgroud)
但Xcode不会那么容易被愚弄,而是叫我出来引用我自己的类型
那么......它甚至可行吗?怎么样 ?
小智 6
我不认为使用a是可能的,typealias因为你正在创建一个无限类型.我能想到的唯一方法是进行Observable递归枚举:
enum Observable {
case end([Place])
indirect case node([Place], Observable)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
316 次 |
| 最近记录: |