访问 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
我有一个 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