Я использую MVC с момента моего первого приложения на iOS ... теперь я хочу попробовать MVVM.
Мой подход заключается в том, что модель может содержать удаленный URL, а ViewModel делает Просьба загрузить изображение. (затем нажимаем на связанное представление) ... Я думаю, что это подходит для того, чтобы не делать сетевой запрос в представлениях (или в худших ячейках!)
class Person: NSObject {
var firstName: String?
var lastName: String?
var avatarURL: URL?
}
class PersonEntryViewModel {
var name:String?
var avatarImage:UIImage?
init(person: Person?) {
super.init()
// omitted: binding self.name based on person.firstName & person.lastName
var request: URLRequest? = nil
if let avatarURL = person?.avatarURL {
request = URLRequest(url: avatarURL)
}
fetchImageFromNetwork({ response, data in
if let data = data {
avatarImage = UIImage(data: data)
}
})
}
}
Как вы думаете?
Мое сомнение связано с памятью. Я мог бы иметь большой массив моделей, заполненных UIImages ...