2016-07-29 5 views
1

У меня есть класс под названием «строитель виски», который только инициирует новый виски. Теперь я хотел бы добавить новые добавленные виски в свой «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„whiskyArray“не может быть использован по типу„WhiskyOverViewController“Почему я не в состоянии использовать whiskyArray- переменная там?

заранее спасибо за помощь

ответ

5

Что нужно есть только для чтения вычисляется свойство:

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

два типа должны быть совместимы друг с другом. Так же, как вы не можете назначить UIImage на строку, программа не позволит назначить тип [WhiskyBuilder] массива к типу WhiskyOverViewController. Вы должны были объявить stringArray глобально, потому что другие мудрый Свифт вывел бы его тип.

2

Вы должны переместить этот код в функции:

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

 Смежные вопросы

  • Нет связанных вопросов^_^