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

How to access a var from an extension of the same ViewController

我在 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。我找到了这个 post,并认为我已经听懂了他们所说的,但仍然没有运气。 enter link description here

你的分机有误。

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

您似乎扩展了 默认值 UIViewController class。您应该扩展 ViewController class,它是您创建的 UIViewControllersubclass,其中您的变量 options可用。