如何改变问题并显示一个数组项

时间:2017-11-10 10:47:43

标签: swift nsarray plist

我有一个正在研究的测验项目,但是目前我发现很难改变问题并从阵列中挑选个别项目。请在下面找到我的代码。

我的类别选择控制器是:

puppetserver.service - LSB: puppetserver
   Loaded: loaded (/etc/init.d/puppetserver)
   Active: failed (Result: exit-code) since Fri 2017-11-10 10:20:13 UTC; 3h 54min ago
  Process: 5490 ExecStart=/etc/init.d/puppetserver start (code=exited, status=2)

我的测验控制器是

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")]}

我的plist如下

Plist image is here

我将不胜感激任何帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

使用Fisher-Yates随机播放。

基本算法是:

  1. 从未洗过的数组和一个空的洗牌数组开始。
  2. 从未洗脑的数组中随机选取一个元素
  3. 将其从未抽取的数组中删除,并将其添加到混洗数组的末尾。
  4. 重复步骤2和3,直到未洗涤的数组为空。
  5. 返回洗牌阵列。
  6. 你可以随机播放阵列"#34;使用以下算法

    1. 将变量n设置为数组中的元素数。
    2. x中选择一个随机数0 ..< n(使用arc4random_uniform()
    3. 将元素x与元素n - 1
    4. 交换
    5. 1
    6. 中减去n
    7. 重复步骤2到4,直到n为零。