【发布时间】:2019-06-05 22:00:44
【问题描述】:
嘿,我在自己的 swift 文件中有 2 个类。我基本上这样做只是为了在我的 Viewcontroller 中获得更好的概览。不过,我需要访问数据或从我的视图 controller.swift 文件中的其他文件调用函数。它在同一个目标中,所以我不需要在我的视图控制器文件中导入它吗?
如果我确实覆盖了 func viewDidLoad() 我会得到一个异常,所以我想我只能执行一次(-> 在我的 viewController.swift 中)
//ViewController.swift
class ViewController: UIViewController{
@IBOutlet weak var xMotion: UILabel!
@IBOutlet weak var yMotion: UILabel!
@IBOutlet weak var zMotion: UILabel!
@IBOutlet weak var lineChartView: LineChartView!
@IBOutlet weak var lineChartView2: LineChartView!
override func viewDidLoad() {
super.viewDidLoad()
timebuffer.append(Double(ts1))
colors.append(UIColor.red)
Graphen.customizeChart(values: buffer1.map { Double($0) })
Graphen.filteredChart(values: buffer2.map { Double($0) })
Graphen.multipleCharts()
}
//Graphen.swift
class Graphen : ViewController
{
//creates Plot with specific numbers/data
func customizeChart(values: [Double]){
var dataEntries: [ChartDataEntry] = []
for i in 0..<buffer1.count{//dataPoints.count
let dataEntry = ChartDataEntry(x: Double(i), y: values[i])
dataEntries.append(dataEntry) }
lineChartDataSet = LineChartDataSet(entries: dataEntries, label: nil)
lineChartDataSet.circleRadius = 0.5
let lineChartData = LineChartData(dataSet: lineChartDataSet)
self.lineChartView.data = lineChartData
}
}
【问题讨论】:
-
不确定 Graphen 是什么,但我觉得它不应该从
ViewController继承,因为它更像是一个辅助类(?)并且在你的viewDidLoad方法中你需要创建一个实例在致电customizeChart()之前使用 Graphen。也许你甚至应该在 ViewController 中拥有Graphen类型的属性 -
Graphen.swift 如果我在文件中声明了一个在 LineChartView 中绘制图表的函数。我想在 Graphen.swift 中声明并在 ViewController.swift 中使用它,例如 Graphen.[nameOfFunc] 例如 customizeChart.
-
就像我说的,它不应该是一个子类