仅在Swift

时间:2016-03-19 14:03:11

标签: swift

我在我的项目中运行了大量填充的tableView。我试图将一次的tableView数组洗牌。我发现此链接How do I shuffle an array in Swift?代码中的类似代码工作正常..但是每次刷卡时代码都会混洗TableView数组(up /下)。我只想限制代码只发生一次......

我正在使用以下代码。

    override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.


    var indexArray = Array(MY ARRAY NAME.indices)
    var index = indexArray.endIndex

    let indexGenerator: AnyGenerator<Int> = anyGenerator {
        if index == indexArray.startIndex { return nil }
        index = index.advancedBy(-1, limit: indexArray.startIndex)
        let randomIndex = Int(arc4random_uniform(UInt32(index)))
        if randomIndex != index {
            swap(&indexArray[randomIndex], &indexArray[index])
        }
        return indexArray[index]
    }

    let permutationGenerator = PermutationGenerator(elements: MY ARRAY NAME, indices: AnySequence(indexGenerator))
    let newArray = Array(permutationGenerator)
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell


    ////////////////////////////////////
    cell.textLabel?.text = newArray[indexPath.row] //use of unsolved identifier "newArray"
   ////////////////////////////////////

    return cell

}

先谢谢。

1 个答案:

答案 0 :(得分:0)

只需在viewDidLoad中调用它,它应该只对表视图单元格进行一次洗牌。没有必要在每个单元格中调用它。