私は自分のアプリケーションでエラーに出くわしました:iOSの - レンジ
fatal error: Index out of range (lldb)
私は問題はしかし、上の手掛かりを持っていない、何であるかのようなアイデアを持っているかもしれないと思いますエラーを修正する方法。
私はセクションヘッダーを使用しているため、この問題が発生していると思います。私はコーディングを読むだけでなく、それを修正してオンラインで検索することを証明しています。以下は私のコードのサンプルを投稿したものです(数百行のコードが含まれているので、すべて含めたくありませんでした)。
基本的には、ユーザーがオプションを選択してテキストが表示されるSWRevealと組み合わせてTableViewControllerを使用しています。
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]
P.S.私はこれを行うにした場合:
:最初のオプションだけを選択する際にDestVC.FirstString = "Hello World"
たHello Worldが表示され、その後、コードは/アプリケーションは、私はライン上で「範囲外のインデックス」と同じエラーが出る破ります
ThirdAnswerArray = ThirdArray[indexPath.row]
私が言っていることを理解していますが、私のThirdArrayは2つの値で構成され、2つのセルがあります。十分で十分ではないでしょうか?まあ、私はアプリケーションがクラッシュし続けるための答えを知っています。 brandAnswerArrayにどのように値を割り当てるのですか?何が最善の方法でしょうか? – TheNoviceProgrammer