代码之家  ›  专栏  ›  技术社区  ›  icekomo

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

  •  0
  • icekomo  · 技术社区  · 7 年前

    我在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 回复  |  直到 7 年前
        1
  •  5
  •   Rakesha Shastri    7 年前

    你接错分机了。

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

    你好像把时间延长了 违约 UIViewController 班级。你应该延长你的时间 ViewController 类,它是 子类 options 是可用的。