【发布时间】:2017-07-17 12:19:50
【问题描述】:
我有两个看起来像这样的结构:
struct Song {
var title: String
var artist: String
}
var songs: [Song] = [
Song(title: "Title 1", artist: "Artist 1"),
Song(title: "Title 2", artist: "Artist 2"),
}
和
struct Song2 {
var title: String
var artist: String
}
var songs2: [Song] = [
Song(title: "Title 1", artist: "Artist 1"),
Song(title: "Title 2", artist: "Artist 2"),
}
我想创建一个在不同事件上发生变化的变量,要么引用第一个结构,要么引用第二个结构。像这样。
var structToBeReferenced = //What goes here?
ViewController1
override func viewDidLoad() {
super.viewDidLoad()
structToBeReferenced = songs
}
ViewController2
override func viewDidLoad() {
super.viewDidLoad()
structToBeReferenced = songs2
}
ViewController3
func theFunction() {
label.text = structToBeReferenced[thisSong].title
}
基本上,我只想创建一个可以更改的变量,以便在 ViewController1 中将structToBeReferenced 设置为songs。 ViewController2 将structToBeReferenced 设置为songs2。因此,在 ViewController3 中,每当调用 theFunction() 时,都会引用正确的库。
我希望这是有道理的。我只需要知道变量structToBeReferenced 需要相等。感谢您的帮助!
【问题讨论】:
-
不太确定你想达到什么目的。声明两个完全不相关但实现相同的结构的目的是什么?
-
@mag_zbc 我有 2 个歌曲库。两者都显示在
UITableView上。当用户点击单元格时,它会打开一个播放器视图。两个 tableviews 打开相同的播放器视图。我需要这个,以便在播放器视图中引用正确的歌曲库。 -
@JacobCavin,那么你需要两个集合,不是两个不同的,而是相似的类型。
标签: ios swift variables struct