Упоминая, что:
Я узнал, что ViewModel (учитывая MVVM) никогда не должен иметь
UIKit ссылка.
кажется не всегда правильным, это не стандартное правило при создании модели представления, поэтому, если импорт UIKit
требуется просто для объявления свойства как IBOutlet
, это было бы неплохо .
Я считаю, что цель упоминания о том, что представление никогда не должно импортировать UIKit
, заключается в том, что мы хотим точную модель представления, что означает, что мы не хотим нарушать принципы паттерна MVVM путем позволяя модели представления - непреднамеренно - позаботиться об ответственности уровня «Вид», избегая импорта UIKit
в модель представления, мы можем гарантировать, что такой конфликт не произойдет; Нет сомнений, что вы, как разработчик, сможете распознать этот конфликт ...
Тем не менее, вы все еще можете удалить import UIKit
из модели вида, объявив client
как:
var client: ApiClient!
, не помечая его как IBOutlet
, поэтому вам придется вводить его программно, а не через раскадровку.