类型的价值' AnyObject'没有会员''

时间:2016-04-13 03:23:01

标签: swift

对于学校,我正在制作一个关于大屠杀的应用程序。我需要在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
        }
    }
}

1 个答案:

答案 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