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이입니다. 고맙습니다.