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

问题描述 投票:0回答:1

我在ViewController中创建了一个var:

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

swift uiviewcontroller extension-methods
1个回答
4
投票

你的扩展错了。

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

你好像扩展了默认的UIViewController类。您应该扩展您的ViewController类,它是您创建的UIViewController的子类,其中您的变量options可用。

© www.soinside.com 2019 - 2024. All rights reserved.