我有一个名为“威士忌建造者”的classe,它只启动新的威士忌。现在我想在我的“WhiskyOverViewController”中添加新添加的威士忌。但我面临以下问题:
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”的行中我得到错误“Instance member'swokyArray'不能用于'WhiskyOverViewController'类型。为什么我不能在那里使用whiskyArray变量?
提前感谢您的帮助
答案 0 :(得分:5)
您需要的是只读计算属性:
var stringArray: [String] {
return whiskyArray.map{$0.whiskyName!}
}
答案 1 :(得分:2)
您需要将此代码移动到一个函数:
let stringArray = whiskyArray.map({$0.whiskyName!})
答案 2 :(得分:0)
这两种类型必须互不兼容。就像您无法将UIImage分配给String一样,您的程序也不会让[WhiskyBuilder]
数组类型分配给WhiskyOverViewController
类型。您必须全局声明stringArray
,否则Swift会推断其类型。