Итак, я натолкнулся на это дело, уже опубликованное приложение должно было изменить все его API и модели .
Теперь я создал общий уровень для обработки запросов и API и почти на полпути к реализации всех сервисов. Теперь я столкнулся с этой проблемой, предыдущие определенные модели широко используются в приложенияхконечно и так как MVC
, Massive View Controller .это будет стоить мне слишком много, меняя все в каждой сцене на новый тип модели,
, поэтому я подумал о создании адаптера для приведения новых моделей, когда я получу их в своем закрытии обратного вызова к старому типу.
Я уже нашел способ, но проблема довольно длинная, долгий путь, я ищу лучший подход, если таковой существует, и лучшее решение для всего случая, если есть лучший.,
protocol Parsable {
var time: String { get }
var span: String { get }
init(_ copy: Parsable)
}
class Foo: Parsable {
required init(_ copy: Parsable) {
self.span = copy.span
self.time = copy.time
}
init(time: String, span: String) {
self.time = time
self.span = span
}
var time = ""
var span = ""
}
class Fee: Parsable {
required init(_ copy: Parsable) {
self.span = copy.span
self.time = copy.time
}
init(time: String, span: String, date: String) {
self.time = time
self.span = span
self.date = date // an extra var that is not used in Foo
}
var time = ""
var span = ""
var date = ""
}
var foo = Foo(time: "", span: "")
var fee = Fee(time: "2", span: "ye", date: "123")
// Usage
var deeped = Foo(fee)
Как вы можете сказать из кода, я создал protocol
, который содержит переменные, и init()
, который содержит его тип, теперь представьте это для реализациимодели с переменной + 50 и модели + 40 , возможно, потребуется возраст или два.