gpt4 book ai didi

swift - Rxswift + Moya + Realm

转载 作者:行者123 更新时间:2023-11-30 12:50:06 26 4
gpt4 key购买 nike

好吧,让我们先解释一下我的目标。我正在尝试构建一个结构来从 Moya 获取项目并使用 Realm 对象正确映射我的项目,以便将来保存它们。所有这些都应该使用 rxswift 完成,以获得关联的 react 性。

这是我的第二堂课:

import Foundation
import ObjectMapper
import RealmSwift

final class GroupContainer: Mappable {

private(set) var items = List<Group>()

required convenience init?(map: Map) {
self.init()
}

func mapping(map: Map) {
items <- (map["items"], transformation: RealmListTransform<Group>())

}
}
import Foundation
import RealmSwift
import ObjectMapper

final class Group: Object, Mappable {

private(set) dynamic var tag: String = ""
private(set) dynamic var name: String = ""
private(set) dynamic var groupLevel: Int = 0
private(set) dynamic var groupPoints: Int = 0
private(set) dynamic var members: Int = 0

required convenience init?(map: Map) {
self.init()
}

func mapping(map: Map) {
tag <- map["tag"]
name <- map["name"]
clanLevel <- map["groupLevel"]
clanPoints <- map["groupPoints"]
members <- map["members"]
}
}

这是一个用于获取和解析我的数据的示例结构。这是 RxMoya 提供的示例。但是,为了使用 ObjectMapper,我无法使用 mapObjectOptionnal 方法。我尝试将模型切换到 ModelMapper,但找不到将数组转换为列表的方法我还尝试找到 mapObjectOptionnal 的替代品,例如 mapArray、mapObject,但由于某种原因我无法在发出请求后直接使用它们。

import Moya
import Moya_ObjectMapper
import RxOptional
import RxSwift

struct TempFetcher {
let provider = RxMoyaProvider<APIService>()
let groupName = Observable<String>

func trackGroup() -> Observable<[Group]> {
return self.groupName.observeOn(MainScheduler.instance)
.flatMapLatest { search -> Observable<GroupContainer> in
return self.findGroup(name: search)
}
.flatMapLatest { container -> Observable<[Group]> in
return Observable<[Group]>.just(container.items)
}
}

private func findGroup(name: String) -> Observable<GroupContainer?> {
return self.provider
.request(APIService.Group(fullName: name))
.debug()
.mapObjectOptional(type: Repository.self)
}
}

任何对我的研究进展的帮助将不胜感激!谢谢。

最佳答案

我使用这些 Pod 来实现相同的功能,并且该组合对我有用。

pod 'Moya/RxSwift'
pod 'Moya-ObjectMapper/RxSwift'
pod 'ObjectMapper+Realm'

代替mapObject可选使用

  return Mapper<LoginResponse>().map(JSONObject: data)

关于swift - Rxswift + Moya + Realm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41111427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com