在TerningspilletSpillereViewController
我有一个如下所示的数组:
var mineSpillere = ["1SP", "2SP", "3SP"]
以下:
func assignArray() {
let obj = TerningspilletViewController()
obj.mineSpillere2 = self.mineSpillere
}
在我的其他UIViewController
(TerningspilletViewController
)我有这个
var mineSpillere2 = [String]()
我想通过函数在按钮上单击生成随机(1SP,2SP或3SP):
func generateNumber() {
let array = aBB
let randomIndex = Int(arc4random_uniform(UInt32(array.count)))
randomLabel.text = (array[randomIndex])
}
但是这给了我以下错误:
致命错误:数组索引超出范围。
我这一行randomLabel.text = (array[randomIndex])
为什么?
答案 0 :(得分:1)
请参阅此示例并更新您的使用情况。我不太了解你的命名,但这是你如何从不同的视图控制器(用数据初始化)获取数据。
First View Controller:
<Response [200]>
第二视图控制器:
import UIKit
class ViewController: UIViewController {
var arrayWithoutData = [String]()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
assignArray()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func assignArray() {
let otherVC = NextViewController()
arrayWithoutData = otherVC.mineSpillere
println(arrayWithoutData)
}
}
答案 1 :(得分:0)
出现这种错误有两个原因:
array.count
和数组访问之间变化。只有从另一个线程arc4random_uniform
永远不会产生数字0<=X<0
(无论它返回什么都会触发索引越界异常)。因此,如果您没有使用多个线程,请检查该数组是否为空。