我在我的项目中运行了大量填充的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
}
先谢谢。
答案 0 :(得分:0)
只需在viewDidLoad中调用它,它应该只对表视图单元格进行一次洗牌。没有必要在每个单元格中调用它。