Я довольно новичок в этом и попал в запутанную ситуацию.
У меня есть ViewController, который принимает входные данные для передачи в менеджер моделей данных для обработки, который затем возвращает его для отображения. Я хочу передать список параметров различных типов в диспетчер данных, где они будут использоваться в ряде вложенных функций, только некоторые из которых нуждаются во всех параметрах.
Я играл с двумя методами чтобы решить ее: просто пропустите все параметры через все функции или создайте список параметров типа [Любой]. Мне это тоже не кажется правильным.
Вот основы кода V C, показывающие параметры, которые я хочу передать.
class TriviaViewController: UITableViewController {
var questionsAndAnswers: [TriviaModel] = []
var categoryToGet: [String] = []
var earliestYear = 0
var latestYear = 0
var difficulty: TriviaModel.gameType = .single
Я планирую получить данные с помощью функции который вызывает диспетчер данных, вот так (сейчас я передаю только один параметр для категории, но здесь я хочу передать все из них.
func getTriviaData() {
triviaManager.fetchTrivia(for: Int(categoryToGet[1])!)
}
В TriviaManager у меня есть серия из трех функций, которые выполняют выборку данных. Первая получает данные, вызывает вторую для анализа, а вторая вызывает третью для выбора данных, которые должны быть возвращены. Вот соответствующие части кода:
func performRequest(with urlString: String) {
... some fetching code that uses only the url parameter ...
if let triviaModel = self.parseJSON(safeData) {
...
}
func parseJSON(_ triviaData: Data) -> [TriviaModel]? {
... some code that parses using none of the parameters ...
let selectedContent = selectContent(contentArray: content, forType: .single)
return selectedContent
...
}
func selectContent(contentArray: [TriviaModel], forType: TriviaModel.gameType) -> [TriviaModel] {
... some code which selects the right data using all the parameters
Нужно ли передавать все параметры через две функции, которые им не нужны, или есть лучший способ?