【发布时间】:2017-11-03 03:31:44
【问题描述】:
我为 iOS 构建了一个应用程序,我希望它从 8 个不同的问题组中随机选择问题。问题数量为 356,其中只有 50 个必须随机选择。
- 第一组的 8 个问题
- 第二组的 5 个问题
- 第三组的 5 个问题
- 来自第四组的 6 个问题
- 第 5 组的 6 个问题
- 来自第 6 组的 5 个问题
- 来自第 7 组的 9 个问题
- 第 8 组的 6 个问题
总共:50 个问题。
我所做的是,我构建了测验,但它会读取所有问题并将它们显示给用户。这些问题是从 .json 文件中读取的。
这是我的代码: (因为代码上没有cmets,问我吧。)
import UIKit
struct Question {
var Question: String!
var Answers: [String]!
var Answer: Int!
init(item: [String: Any])
{
self.Question = item["Question"] as? String
self.Answers = item["Answers"] as? [String]
self.Answer = item["Answer"] as? Int
}
}
class LittleTestViewController: UIViewController {
//MARK: Properties
@IBOutlet weak var questionLabel: UILabel!
@IBOutlet var buttons: [UIButton]!
var Questions = [Question]()
var QNumber = Int()
var answerNumber = Int()
override func viewDidLoad() {
super.viewDidLoad()
jsonParsingQuestionsFile()
pickQuestion()
}
func jsonParsingQuestionsFile ()
{
guard let path = Bundle.main.path(forResource: "data", ofType: "json"),
let array = (try? JSONSerialization.jsonObject(with: Data(contentsOf: URL(fileURLWithPath: path), options: .mappedIfSafe), options: JSONSerialization.ReadingOptions.allowFragments)) as? [[String : Any]] else{
return
}
for item in array
{
self.Questions.append(Question(item: item))
}
}
func pickQuestion ()
{
if Questions.count > 0 {
QNumber = 0
questionLabel.text = Questions[QNumber].Question
answerNumber = Questions[QNumber].Answer
for i in 0..<buttons.count{
buttons[i].setTitle(Questions[QNumber].Answers[i], for: UIControlState.normal)
}
Questions.remove(at: QNumber)
}
else
{
print ("End")
}
}
@IBAction func btn1(_ sender: UIButton){
Unhide()
if answerNumber == 0 {
print ("Correct!!")
}
else
{
}
}
@IBAction func btn2(_ sender: UIButton) {
Unhide()
if answerNumber == 1 {
print ("Correct!!")
}
else
{
}
}
@IBAction func btn3(_ sender: UIButton) {
Unhide()
if answerNumber == 2 {
print ("Correct!!")
}
else
{
}
}
@IBAction func btn4(_ sender: UIButton) {
Unhide()
if answerNumber == 3 {
print ("Correct!!")
}
else
{
}
}
}
data.json
[ {"Question":"Group 1. lalala?", "Answers":["lala","trtr","asas","bbbb"],"Answer": 2},
{"Question":"Group 1. lalala?", "Answers":["lala","trtr","asas","bbbb"],"Answer": 2},
{"Question":"Group 1. lalala?", "Answers":["lala","trtr","asas","bbbb"],"Answer": 3},
{"Question":"Group 2. lalala?", "Answers":["lala","trtr","asas","bbbb"],"Answer": 2},
{"Question":"Group 2. lalala?", "Answers":["lala","trtr","asas","bbbb"],"Answer": 1},
{"Question":"Group 2. lalala?", "Answers":["lala","trtr","asas","bbbb"],"Answer": 2},
{"Question":"Group 3. lalala?", "Answers":["lala","trtr","asas","bbbb"],"Answer": 2},
{"Question":"Group 3. lalala?", "Answers":["lala","trtr","asas","bbbb"],"Answer": 2},
{"Question":"Group 4. lalala?", "Answers":["lala","trtr","asas","bbbb"],"Answer": 2},
{"Question":"Group 4. lalala?", "Answers":["lala","trtr","asas","bbbb"],"Answer": 3},
{"Question":"Group 4. lalala?", "Answers":["lala","trtr","asas","bbbb"],"Answer": 2},
{"Question":"Group 5. lalala?", "Answers":["lala","trtr","asas","bbbb"],"Answer": 0},
{"Question":"Group 5. lalala?", "Answers":["lala","trtr","asas","bbbb"],"Answer": 2},
{"Question":"Group 6. lalala?", "Answers":["lala","trtr","asas","bbbb"],"Answer": 0},
{"Question":"Group 7. lalala?", "Answers":["lala","trtr","asas","bbbb"],"Answer": 2},
{"Question":"Group 8. lalala?", "Answers":["lala","trtr","asas","bbbb"],"Answer": 0},
{"Question":"Group 8. lalala?", "Answers":["lala","trtr","asas","bbbb"],"Answer": 1},
{"Question":"Group 9. lalala?", "Answers":["lala","trtr","asas","bbbb"],"Answer": 2},]
这个 .json 文件只是一个示例,每个组都有更多问题。每个小组有大约 45 个问题。
【问题讨论】: