Это struct
моего массива:
struct Question {
let imgName: String
let questionText: String
let options: [String]
let correctAns: Int
var wrongAns: Int
var isAnswered: Bool
}
var questionsArray = [Question]()
Вот как массив заполняется в настоящее время:
let que1 = Question(imgName: "img1", questionText: "What is 2 x 2 ?", options: ["2", "4", "8", "6"], correctAns: 1, wrongAns: -1, isAnswered: false)
let que2 = Question(imgName: "img2", questionText: "What is 4 + 2 ?", options: ["9", "4", "3", "6"], correctAns: 3, wrongAns: -1, isAnswered: false)
questionsArray = [que1, que2]
Я хотел бы поместить данные в текстовый файл и заполнить мой questionsArray
. Поэтому я создал файл data.txt и поместил его в пакет. Ниже приводится содержание data.txt. Каждый вопрос отделяется новой строкой.
Question(imgName: "img1", questionText: "What is 2 x 2 ?", options: ["2", "4", "8", "6"], correctAns: 1, wrongAns: -1, isAnswered: false)
Question(imgName: "img2", questionText: "What is 4 + 2 ?", options: ["9", "4", "3", "6"], correctAns: 3, wrongAns: -1, isAnswered: false)
Я пытался использовать этот метод:
var arrayOfStrings: [String]?
do {
if let path = Bundle.main.path(forResource: "data", ofType: "txt") {
let data = try String(contentsOfFile:path, encoding: String.Encoding.utf8)
arrayOfStrings = data.components(separatedBy: "\n")
questionsArray = arrayOfStrings
}
} catch let err as NSError {
print(err)
}
Однако я получил ошибку Cannot assign value of type '[String]?' to type '[Question]'
для строки questionsArray = arrayOfStrings
.
Как это решить?