Swift 实例成员不能用于自定义类的类型

Swift 实例成员不能用于自定义类的类型,swift,instances,Swift,Instances,我有一个名为“威士忌制造者”的班级,它只生产新的威士忌。现在我想在我的“威士忌概览控制器”中添加新添加的威士忌。但我面临以下问题: class WhiskyOverViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { @IBOutlet weak var tableView: UITableView! var whiskyArray = [WhiskyBuilder]() let stri

我有一个名为“威士忌制造者”的班级,它只生产新的威士忌。现在我想在我的“威士忌概览控制器”中添加新添加的威士忌。但我面临以下问题:

class WhiskyOverViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

@IBOutlet weak var tableView: UITableView!

var whiskyArray = [WhiskyBuilder]()
let stringArray = whiskyArray.map({$0.whiskyName!})
var whiskies = [Character: [String]]()
var objectsArray = [Object]()
在“stringArray”行中,我得到错误“实例成员“whiskyArray”不能用于类型“WhiskyOverViewController”。为什么我不能在那里使用whiskyArray变量


提前感谢您的帮助

这两种类型必须彼此不兼容。就像您不能将UIImage分配给字符串一样,您的程序也不允许您分配
[WhiskyBuilder]
数组类型到
WhiskyOverViewController
类型。您必须全局声明
stringArray
,否则Swift将推断其类型。

这两种类型必须彼此不兼容。就像您不能将UIImage分配给字符串一样,您的程序也不允许您分配
[WhiskyBuilder]
数组类型到
WhiskyOverViewController
类型。您必须全局声明
stringArray
,否则Swift将推断其类型。

您需要将此代码移动到函数:

let stringArray = whiskyArray.map({$0.whiskyName!})

您需要将此代码移动到函数:

let stringArray = whiskyArray.map({$0.whiskyName!})

您需要的是只读计算属性:

var stringArray: [String] { 
    return whiskyArray.map{$0.whiskyName!} 
}

您需要的是只读计算属性:

var stringArray: [String] { 
    return whiskyArray.map{$0.whiskyName!} 
}