访问 swift 中的 class 个实例

Accessing class instance in swift

我有一个 Graph 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)
      ...
      }

现在我想访问 class 实例中的函数,它是我在不同 class 中在 MainVC 中创建的(以在 TableView 中填充数据)。

var g : Graph = MainVC.graph returns "Instance member graph cannot be used on type MainVC" 我也尝试过使用静态变量,但出现错误。

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

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

这是我知道的检查方式之一。

class MainVC {
   let graph : Graph! 
}

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

的实例

在你的 class MainVC 中将变量设置为静态变量,其中包含实例

 static var graph: Graph?

然后将 Graph 的实例存储在 graph 属性 in Graph class

  MainVc.graph = self

现在您可以在另一个 class 中使用,您可以在其中访问图形实例

  MainVc.graph