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

Instance member cannot be used on type of custom class

我有一个名为 "whisky builder" 的类,它只启动新威士忌。现在我想在我的 "WhiskyOverViewController" 中添加新添加的威士忌。但我面临以下问题:

class WhiskyOverViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

@IBOutlet weak var tableView: UITableView!

var whiskyArray = [WhiskyBuilder]()
let stringArray = whiskyArray.map({[=11=].whiskyName!})
var whiskies = [Character: [String]]()
var objectsArray = [Object]()

在 "stringArray" 行中,我收到错误消息“实例成员 'whiskyArray' 不能用于类型 'WhiskyOverViewController'。为什么我不能在那里使用 whiskyArray 变量?

提前感谢您的帮助

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

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

let stringArray = whiskyArray.map({[=10=].whiskyName!})

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

var stringArray: [String] { 
    return whiskyArray.map{[=10=].whiskyName!} 
}