问题描述
public lazy var passwordProvider: MoyaProvider<PasswordTarget> = createPasswordProvider()
public lazy var publicProvider: MoyaProvider<PublicTarget> = createPublicProvider()
func getGroceriesPublic() -> Single<[Grocery]> {
return publicProvider.rx
.request(.getGroceries)
.map([Grocery].self,atKeyPath: "data",failsOnEmptyData: false)
.map ({
// data manipulation here same as for password provider
})
}
和完全相同的功能,但有密码提供程序:
func getGroceriesPassword() -> Single<[Grocery]> {
return passwordProvider.rx
.request(.getGroceries)
.map([Grocery].self,failsOnEmptyData: false)
.map ({
// data manipulation here same as for public provider
})
}
我想知道是否有任何方法可以使一个函数接受 MoyaProvider<T>
作为参数。未来我会添加更多的提供者,只是复制粘贴函数代码看起来不是一个好的解决方案。
到目前为止,我尝试过这个,但不确定我是否朝着正确的方向前进:
func getGroceries<T>(provider: MoyaProvider<T>) -> Single<[Grocery]> {
return provider.rx
.request(.getGroceries) // gives me an error here because it doesn't kNow if it's passwordProvider or publicProvider
.map([Grocery].self,failsOnEmptyData: false)
.map ({
...
})
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)