Hello:
I have this piece of code that seems very straightforward but three errors persist and I can't figure out why.
lines 6, 7, 21 raise errors but I thought that the variable was declared on lines 6 and 7!
import Cocoa
class ViewController: NSViewController {
privatevar overviewViewController: OverviewController?
privatevar detailViewController: DetailViewController?
privatevar products = [Product]() //Unresolved Identifier 'Product'
var selectedProduct: Product? //Undeclared iidentifier 'Product'
@IBActionfunc valueChanged(_ sender: NSPopUpButton) {
detailViewController?.selectedProduct = selectedProduct
iflet bookTitle = sender.selectedItem?.title,
let index = products.index(where: {$0.title == bookTitle}) {
selectedProduct = products[index]
}
overviewViewController?.selectedProduct = selectedProduct
}
@IBOutletweakvar productsButton: NSPopUpButton!
overridefunc viewDidLoad() {
super.viewDidLoad()
iflet filePath = Bundle.main.path(forResource: "Products", ofType: "plist") {
products = Product.productsList(filePath) //Unresolved Identifier 'Product'
}
//1
productsButton.removeAllItems()
//2
for product in products {
productsButton.addItem(withTitle: product.title)
}
//3
selectedProduct = products[0]
productsButton.selectItem(at: 0)// Do any additional setup after loading the view.
}
overridevar representedObject: Any? {
didSet {
// Update the view, if already loaded.
}
}
overridefunc prepare(for segue: NSStoryboardSegue, sender: Any?) {
guardlet tabViewController = segue.destinationController
as? NSTabViewController else { return }
for controller in tabViewController.children {
iflet controller = controller as? OverviewController {
overviewViewController = controller
overviewViewController?.selectedProduct = selectedProduct
}
elseiflet controller = controller as? DetailViewController {
detailViewController = controller
detailViewController?.selectedProduct = selectedProduct
}
}
}
}