2016-07-29 70 views
1

我有一个名为“whiskey builder”的类,它只启动新的威士忌。现在我想在我的“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]() 

在“字符串数组”的线,我得到了错误“的实例成员‘whiskyArray’不能在类型中使用‘WhiskyOverViewController’为什么我不能够使用whiskyArray-变量呢?

在此先感谢您的帮助

回答

5

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

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

这两种类型必须是互不兼容。就像你不能指定一个UIImage一个字符串,程序不会让你指定[WhiskyBuilder]数组类型到WhiskyOverViewController类型。您必须在全局声明stringArray,因为其他明智的斯威夫特会推断它的类型。

2

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

let stringArray = whiskyArray.map({$0.whiskyName!}) 
相关问题