1
我想重构项目使用Realm和Alamofire的MVVM模式。使用领域和服务使用MVVM
我没有找到确切的答案,我应该在哪里进行API调用,以及在哪里必须使用Realm将数据写入数据库。我的猜测是'应该在模型中。
例如,我想显示用户配置文件。这个例子是否正确,我应该在哪里进行API调用?我的问题是我需要为服务和模型创建许多静态/类功能,我不能使用自动更新结果。
// Model
class User: Object {
class function get(whereIdentifier identifier: Int) {
let realm = try! Realm()
let predicate = NSPredicate(format: "identifier = %d", identifier)
return realm.objects(Runner.self).filter(predicate).first
}
}
// ViewModel
struct UserViewModel {
init(user userModel: User) {
}
static func get(whereIdentifier identifier: Int) -> UserViewmodel? {
// Return a UserViewModel to show on the ViewController
}
}
// I got a service like
struct UserService: Networkable {
func get(whereUser user: User, completionHandler: @escaping (Result<User>) -> Void) {
// Return a user from API
}
}
// I got a service like
struct UserService: Networkable {
func get(whereUser user: User, completionHandler: @escaping (Result<User>) -> Void) {
// Return a user from API
}
}
嗯,这是我的想法之一,但因为视图参考模型(事实上领域对象,但它是它不是纯MVVM同样的权利?)_ViewController也从我们的DataManager中创建一个自动化查询对象。并且它意味着在项目中的任何地方都有很多对RealmSwift的引用。无论如何感谢您的回答。 – Ludovic
而不是查看API调用的工作;恕我直言! – Ludovic
@Ludovic imo它应该是可能的通过添加通知块在领域的结果,而不是领域(因为领域的结果只是数据有意义?),至少这就是为什么我试图实现 –