我有一個朋友的數組,其相關信息的數組。我在表格視圖中渲染單元格,這很好。我可以導致應用程序崩潰,但如果我通過點擊屏幕上的大量點擊來向上/向下滾動...我無法理解爲什麼我的生活!Swift - 索引超出範圍的UITableVewController
這是錯誤:致命錯誤:超出範圍的索引
似乎有不被莫名其妙,爲什麼出現這種情況,這真的令人困惑。洞察力將不勝感激。
這是失敗等級:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! PictureCell
let pos = self.positiveVoteArray.reduce(0,combine: {$0 + $1})
let neg = self.negativeVoteArray.reduce(0,combine: {$0 + $1})
let progress = (pos + neg)/pos
//Fails below this line, first reference to indexPath.row //
cell.usernameBtn.setTitle(usernameArray[indexPath.row], forState: .Normal)
cell.uuidLbl.text = uuidArray[indexPath.row]
avaArray[indexPath.row].getDataInBackgroundWithBlock { (data:NSData?, error:NSError?) in
if error == nil {
cell.avaImg.image = UIImage(data: data!)
}
}
if votedFriendsArray.contains((PFUser.currentUser()?.username!)!) {
cell.scoreBar.hidden = false;
cell.dislikeBtn.hidden = true;
cell.likeBtn.hidden = true;
cell.scoreBar.setProgress(progress, animated: true)
} else {
cell.scoreBar.hidden = true;
cell.dislikeBtn.hidden = false;
cell.likeBtn.hidden = false;
}
picArray[indexPath.row].getDataInBackgroundWithBlock { (data:NSData?, error:NSError?) in
if error == nil {
cell.picImg.image = UIImage(data: data!)
}
}
// assign index
cell.usernameBtn.layer.setValue(indexPath, forKey: "index")
return cell
}
你會在哪一行發生錯誤? –
@SamM錯誤低於評論,第8行 – matt