在使用自定义索引路径的 didSelectRowAtIndexPath 期间崩溃

Crash during didSelectRowAtIndexPath with custom index path

我的项目遇到了一个问题。

我有一个包含国家列表的表格视图。当你 select 一个国家时,它应该为新 selected 国家添加一个复选标记配件。这一切都很好。

但是,我希望将旧国家/地区的配件设置为 none,但是我在排序时遇到了问题。

我的代码是:

let oldCountry = countryList.countries.filter({c in c.countryName == profileCountryID })
let countryKey = oldCountry[0].countryID

let oldselectedCell:UITableViewCell = tableView.cellForRowAtIndexPath(NSIndexPath(index: countryKey))!

oldselectedCell.accessoryType = UITableViewCellAccessoryType.None

应用程序在此行崩溃:

let oldselectedCell:UITableViewCell = tableView.cellForRowAtIndexPath(NSIndexPath(index: countryKey))!

countryID 在一个结构中,允许我找到数组编号

struct Country {
    var countryName  : String
    var countryID    : Int
}

public struct CountryLibrary {
    var countries: [Country]
}

let countryList =

CountryLibrary(
    countries: [
        Country(countryName: "Afghanistan", countryID: 0),
        Country(countryName: "Albania", countryID: 1)

])

你能帮我把上一行的配件拆下来吗?

谢谢

我发现您的 NSIndexPath 声明是针对 "one-node" indexPath 的声明。您需要的是声明为:

的 TableView indexPath

NSIndexPath(forRow: <#Int#>, inSection: <#Int#>)

所以您可能想尝试以下方法:

let oldselectedCell:UITableViewCell = tableView.cellForRowAtIndexPath(NSIndexPath(forRow: countryKey, inSection: 0))!