2016-07-29 68 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!}) 
相關問題