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它應該是可能的通過添加通知塊在領域的結果,而不是領域(因爲領域的結果只是數據有意義?),至少這就是爲什麼我試圖實現 –