1. ホーム
  2. ios

[解決済み] 致命的なエラーです。インデックスが範囲外です

2022-03-04 01:20:49

質問

ライブラリにある曲のうち25曲を表示させたい。これは私のコードです。

var allSongsArray: [MPMediaItem] = []
let songsQuery = MPMediaQuery.songsQuery()

func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 1
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 25 //allSongsArray.count
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("cell")
    let items = allSongsArray[indexPath.row]
    cell?.textLabel?.text = items.title
    cell?.detailTextLabel?.text = items.artist
    cell?.imageView?.image = items.artwork?.imageWithSize(imageSize)

    return cell!
}

これを実行すると、クラッシュしてしまうのです、なぜなら。

致命的なエラーです。インデックスが範囲外

を変更しようとしたのですが numberOfRowsInSection から allSongsArray.count が、同じエラーで終わります。

どうすればいいですか?

を返す必要があります。 allSongsArray.count で、空のセルが返されるのを避けるには yourTableView.reloadData を満たした後 allSongsArray .