我正在尝试构建一个键/值对,以便稍后进行引用。 该数组将保存一个索引引用,并在其中包含它的值。其中一个值是与索引匹配的视频,另一个值是相应的标签名称(因此我可以在播放视频时更改颜色)。
这是我的代码:
class ViewController: UIViewController {
var videos = [5: ["urltovideo1", "locationOne"], 7: ["urltovideo2", "locationTwo"]]
var bg: UILabel!
@IBOutlet weak var locationOne: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
bg = videos[5]![1]
bg.backgroundColor = UIColor.green
}
}
我收到错误"无法指定类型'字符串'的值输入' UILabel!'" 我试过" bg = UILabel(视频[5]![1])"并收到错误""参数标签'(_:)'不匹配任何可用的重载""
有关如何修复它的想法或更好的实现方法吗?
答案 0 :(得分:0)
以下是您的解决方案:
@objc var locationOne: UILabel!
@objc var locationTwo: UILabel!
var videos = [5: ["urltovideo1", "locationOne"], 7: ["urltovideo2", "locationTwo"]]
var bg: UILabel! = UILabel()
override func viewDidLoad() {
super.viewDidLoad()
if let bg = self.value(forKey: videos[5]![1]) as? UILabel {
bg.backgroundColor = UIColor.green
}
}
需要@objc才能使self.value(forKey:)
正常工作 - 您必须为要通过此方法访问的每个媒体添加它。