Ios 如何在Swift中获取pList字典中的前20项

Ios 如何在Swift中获取pList字典中的前20项,ios,swift,Ios,Swift,我正在尝试使用以下扩展洗牌我的数组: extension Array { var shuffled: [Element] { guard count > 1 else { return self } var elements = self for index in indices { let newIndex = Int(arc4random_uniform(UInt32(elements.count - index))) + index

我正在尝试使用以下扩展洗牌我的数组:

extension Array {
var shuffled: [Element] {
    guard count > 1 else { return self }
    var elements = self
    for index in indices {
        let newIndex = Int(arc4random_uniform(UInt32(elements.count - index))) + index
        guard index != newIndex else { continue }
        swap(&elements[index], &elements[newIndex])
    }
    return elements
  }
}
然后,我使用此代码洗牌并获取plist上的前20项:

var questionsArray = [myPlistArray?.shuffled]
let shuffledQuestions = questionsArray.shuffle() // instance member cannot be used on type 'myViewController'
let first20 = questionsArray.prefix(20)
但是,我总是会遇到以下错误: //实例成员不能用于类型“myViewController”

有人知道怎么做对吗? 或者有人知道我如何洗牌pList项目并获得前20个项目吗

我的问题与此完全相同:,然而,我的数据在plist字典文件中


不管怎样,我的pList文件是这样的:
myplistaray.pList

你的3行本该洗牌数组的行是混乱的,没有多大意义


该行创建了一个包含单个元素的数组,这是myPlistArray的一个无序版本。所以在一个数组中有一个数组,这是没有意义的


该行尝试调用上一行中创建的数组中扭曲的
shuffledQuestions
数组中的方法
shuffle()
(不shuffled,shuffle,它不存在)


如果你的前两行格式正确,那么这条线实际上是有意义的

你只需要这个:

let questionsArray = myPlistArray?.shuffled //Create a shuffled version
let first20 = questionsArray.prefix(20)  //take the first 20 items.

假设myplistaray是一个可选数组,该代码应该可以工作。

它仍然显示如下:
let questionsArray=myplistaray?.shuffled let first20=questionsArray.prefix(20)//实例成员'questionsArray'不能用于类型'myViewController'
我应该将代码放在'viewDidLoad'中吗?如果是,我怎么称呼它?谢谢你的帮助。你问“我应该把代码放在‘viewdiload’中吗?”对于应该把代码放在哪里,没有通用的答案。这取决于你在哪里需要它,这取决于你想用它做什么。我对你的需求了解不够,无法回答。然后你问:“如果是,我怎么称呼它?”这个问题真的没有意义。如果将代码放在viewDidLoad中,则当系统调用viewDidLoad时,它将运行。你根本不叫它。您是在问如何获得前20个数组吗?我使用了您的代码,但它给了我一个错误//实例成员'questionsArray'不能用于类型'myViewController',请编辑您的问题以显示您添加的新代码。显示包含您编写的代码的整个方法,以及代码使用的实例变量的增量。
let shuffledQuestions = questionsArray.shuffle() // instance member cannot be used on type 'myViewController'
let first20 = questionsArray.prefix(20)
let questionsArray = myPlistArray?.shuffled //Create a shuffled version
let first20 = questionsArray.prefix(20)  //take the first 20 items.