在swift中访问类实例

时间:2017-06-29 11:48:02

标签: ios swift instance swift-class

我有一个图表类,它是一个UIView,我在mainVC.swift内初始化它:

class MainVC : UIViewController{
   let graph : Graph!

   override func viewDidLoad(){
      super.viewDidLoad()
      let data_x : [Double] = [...]
      let data_y : [Double] = [...]
      ...
      graph = Graph(frame: CGRect(...), color: ..., xData: data_x, yData: data_y, darkMode: ...)
      view.addSubview(graph)
      ...
      }

现在我想访问我在MainVC中在不同类中创建的类的实例内部的函数(以填充TableView中的数据)。

var g : Graph = MainVC.graph返回"实例成员图不能用于类型MainVC" 我也尝试过使用静态变量,但是出现了错误。

3 个答案:

答案 0 :(得分:1)

这是我所知道的方式之一。

class MainVC {
   let graph : Graph! 
}

graph是一个存储属性,是一个常量或变量,存储为特定类的实例的一部分。所以,您尝试访问实例属性而不是类的实例。

在您的类MainVC中,将变量设为静态,其中包含实例

 static var graph: Graph?

然后在Graph类

中的graph属性中存储Graph的实例
  MainVc.graph = self

现在,您可以在另一个用于访问图形实例的类中使用

  MainVc.graph

答案 1 :(得分:0)

您正在访问类的实例变量,而不是它的实例。

答案 2 :(得分:0)

let mainVc = MainVC()
let graph = self.graph