对于学校,我正在制作一个关于大屠杀的应用程序。我需要在detailViewController上显示有关阵营的信息,但它不起作用。我能够访问变量" name"价值(对不起,如果我的术语有误),但没有别的。其他帖子不在Swift中或与我的具体问题无关,因此我无法找到解决方案。
以下是创建变量类型的类中的代码:
close(sock)
以下是将详细信息项设置为数组的代码:
class DeathCamp: NSObject {
var name:String = ""
var locationCountry:String = ""
var jewishDeathCount:Int = 0
init(name:String, locationCountry:String, jewishDeathCount:Int){
self.name = name
self.locationCountry = locationCountry
self.jewishDeathCount = jewishDeathCount
}
}
在回复评论的建议时,这是我的DetailViewController的完整代码:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showDetail" {
if let indexPath = self.tableView.indexPathForSelectedRow {
let deathCampNewObject = deathCampArray[indexPath.row]
let countryDeathNewObject = countryArray[indexPath.row]
let controller = (segue.destinationViewController as! UINavigationController).topViewController as! DetailViewController
controller.detailItemDeath = deathCampNewObject
controller.detailItemCountry = countryDeathNewObject
controller.navigationItem.leftBarButtonItem = self.splitViewController?.displayModeButtonItem()
controller.navigationItem.leftItemsSupplementBackButton = true
}
}
}
答案 0 :(得分:1)
更改
if let detail = self.detailItemDeath
为:
if let detail = self.detailItemDeath as? DeathCamp
上面的代码尝试detailItemDeath
的强制到DeathCamp
类型的对象。
同时更改
detailItemDeath?.name
为:
detailItemDeath.name
您已尝试使用detailItemDeath
语法展开if let
,可选链接是多余的,因此也是错误的。
并且,我无法相信我错过了这一点,将detailItemDeath
中的detailItemDeath.name
重命名为detail
!