我有一个图表类,它是一个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"
我也尝试过使用静态变量,但是出现了错误。
答案 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