Альтернативой принудительному приведению является дополнительное приведение с использованием as?
. Обычно вы распаковываете результаты этих приведений, а затем используете значения, например:
guard let question = dictionary["Question"] as? String,
let answer = dictionary["CorrectAnswer"] as? String,
let answers = dictionary["Answers"] as? [String] else { return }
questions.append(MultipleChoiceQuestion(question: question, answer: answer, answers: answers))
Однако, поскольку похоже, что вы декодируете что-то вроде JSON, лучшим выбором будет реализуйте Decodable
для вашего MultipleChoiceQuestion
типа, сделайте это преобразование для вас.