我在我的應用程序跨錯誤絆倒:iOS版 - 索引超出範圍
fatal error: Index out of range (lldb)
我想我可能有一個想法,是什麼問題,但是,沒有一個線索如何修改錯誤。
我相信由於我使用節標題,這是導致問題。我已經證明閱讀代碼以及嘗試修復它並在線搜索。下面我發佈了我的代碼示例(不想包含它,因爲它包含幾百行代碼)。
從本質上講,我使用TableViewController與SWReveal組合使用,用戶選擇一個選項並顯示文本。
class BackTableVC: UITableViewController {
struct Brands {
var sectionName : String!
var sectionBrands : [String]!
}
struct ThirdView {
var ThirdViewArray = [String]()
}
var brandArray = [Brands]()
var ThirdArray = [ThirdView]()
var brandAnswerArray = [String]()
override func viewDidLoad() {
brandArray = [
Brands(sectionName: "Bugatti", sectionBrands: ["EB 110","Veyron"])]
ThirdArray = [ThirdView(ThirdViewArray: ["EB 110","Veyron"])]
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return brandArray[section].sectionBrands.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as UITableViewCell!
cell.textLabel?.text = brandArray[indexPath.section].sectionBrands[indexPath.row]
return cell
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let DestVC = segue.destinationViewController as! CarDetailsVC
let indexPath : NSIndexPath = self.tableView.indexPathForSelectedRow!
let ThirdAnswerArray : ThirdView
ThirdAnswerArray = ThirdArray[indexPath.row]
DestVC.brandAnswerArray = ThirdAnswerArray.ThirdViewArray
DestVC.FirstString = brandAnswerArray[indexPath.row]
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return brandArray.count
}
override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return brandArray[section].sectionName
}
}
import Foundation
struct ThirdView {
var ThirdViewArray = [String]()
}
class CarDetailsVC: UIViewController {
var FirstString = String()
var brandAnswerArray = [String]()
@IBOutlet var Label: UILabel!
override func viewDidLoad() {
Label.text = FirstString
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
_ = segue.destinationViewController as! CarDetailsVC
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
My ThirdView結構和CarDetailsVC在單獨的.swift文件中。
這是給我的悲傷該生產線是:
DestVC.FirstString = brandAnswerArray[indexPath.row]
附:如果我是這樣做:
DestVC.FirstString = "Hello World"
的Hello World是隻選擇第一個選項時顯示,那麼代碼/應用打破了我得到同樣的錯誤「索引超出範圍」就行了:
ThirdAnswerArray = ThirdArray[indexPath.row]
我明白你在說什麼,但是,我的ThirdArray包含兩個值,並且有兩個單元格。這應該不夠嗎?那麼,我知道應用程序繼續崩潰的答案。我如何將值分配給brandAnswerArray?什麼是最好的方法? – TheNoviceProgrammer