0
私は主に私のプロジェクトで実行されているtableViewの大部分を占めています。私はでtableView配列をシャッフルしようとしています。。このリンクからも同様のコードが見つかりましたHow do I shuffle an array in Swift?コードが正常に動作しますが、スワイプ(上/下)するたびにテーブルビュー配列がシャッフルされます。私はちょうど一回起こるようにコードを制限したい...Swiftで一度にシャッフルテーブルビュー配列をシャッフル
私は以下のコードを使用しています。
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
}
ありがとうございました。
このコードブロックはいつ呼びますか?このブロックをviewDidLoadで呼び出してみてください。 –
@ ZacharyEspíritu私はViewDidLoadにコードを移動しましたが、コードはnewArrayを呼び出さないようにしました。私は未解決の識別子エラーを取得しています...私はコードを更新しました。見てください。ありがとう – Joe