如何从同一ViewController的扩展名访问var

时间:2018-09-12 13:44:33

标签: swift uiviewcontroller extension-methods

我在ViewController中创建了一个变量:

class ViewController: UIViewController {
var options: Options?

}

在viewWillAppear中,我设置了选项

/ grab the options
    let optionsFetch: NSFetchRequest<Options> = Options.fetchRequest()

    do{
        let results = try coreDataStack.managedContext.fetch(optionsFetch)
        if(results.count > 0){
            options = results.first
        }
    }catch let error as NSError{
        print("\(error) is the error")
    }

我对此也有一个扩展:

extension UIViewController {
func myMethod() {
let color = options.color
}

我似乎无法从扩展程序中访问var选项。我找到了这篇文章,并以为我已经按照他们的话做了,但还是没有运气。 enter link description here

1 个答案:

答案 0 :(得分:4)

您的扩展名错误。

extension ViewController {
    func myMethod() {
        let color = options.color
    }
}

您似乎扩展了 default UIViewController类。您应该扩展ViewController类,它是您创建的UIViewController子类,其中变量options可用。