1
私が取り組んでいるクイズプロジェクトがありますが、現時点では質問をシャッフルして配列から個々のアイテムを選ぶのは難しいです。以下の私のコードを見つけてください。コントローラを選択質問をシャッフルして配列の1つのアイテムを表示する方法
マイカテゴリーがある:
struct Quiz {
private(set) var name = String()
private(set) var plist: NSArray
init(name: String) {
self.name = name
plist = NSArray(contentsOfFile: Bundle.main.path(forResource: name, ofType: "plist")!)!
}
static let quizzes = [Quiz(name: "Development"), Quiz(name: "Reflexes")]}
を次のように私のクイズコントローラは
override func viewDidLoad() {
super.viewDidLoad()
set = shuffledQuiz([[Quiz.quizzes[currentTopicIndex].plist]])
quiz = set.objectEnumerator()
pickQuestion()
}
func shuffledQuiz(_ name: [[NSArray]]) -> NSArray{
if currentSetIndex < name.count {
return name[currentSetIndex].shuffled() as NSArray
}
return NSArray()}
func pickQuestion() {
if let quiz = quiz?.nextObject() as? NSArray {
print(quiz)
let questionLabel: [String] = quiz.value(forKeyPath: "question") as! NSArray as! [String]
print(questionLabel)
self.questionLabel.text = questionLabel.description
let correctAnswer: [Int] = quiz.value(forKey: "Answer") as! NSArray as! [Int]
print(correctAnswer)
let answers = quiz.value(forKeyPath: "options") as! NSArray
print(answers)
for i in 0..<answersButtons.count {
answersButtons[i].setTitle((answers[i] as AnyObject).localizedName, for: .normal)
}
remainingQuestionsLabel.text = "\(set.index(of: quiz) + 1)/\(set.count)"
}
else {
endOfQuestionsAlert()
}
}
私のplistのは、私はこの上の任意の助けをいただければ幸いです。ありがとうございました。