objective swift instances

swift - objective - El miembro de instancia no se puede usar en el tipo de clase personalizada



objective c to swift (3)

Tengo una clase llamada "generador de whisky" que solo inicia el nuevo Whisky. Ahora me gustaría agregar los nuevos whiskies agregados en mi "WhiskyOverViewController". Pero me enfrento al siguiente problema:

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]()

En la línea de "stringArray" aparece el error "El miembro de instancia ''whiskyArray'' no se puede usar en el tipo ''WhiskyOverViewController''. ¿Por qué no puedo usar la variable whiskyArray allí?

Gracias de antemano por tu ayuda


Lo que necesita es una propiedad calculada de solo lectura:

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


Los dos tipos deben ser incompatibles entre sí. Al igual que no puede asignar un UIImage a una cadena, su programa no le permitirá asignar un tipo de matriz [WhiskyBuilder] a un tipo WhiskyOverViewController . Debe haber declarado stringArray globalmente, porque de lo contrario Swift stringArray su tipo.


Necesita mover este código a una función:

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