gpt4 book ai didi

swift - 从上一个 View 获取数据时如何分配同一类中相互使用的变量

转载 作者:行者123 更新时间:2023-11-30 10:28:44 26 4
gpt4 key购买 nike

在加载此 Controller 之前,我有一个 View Controller ,它从我的数据库获取不同的视频并获取它们的下载网址,然后我使用 prepare(segue:... 将每个网址传递到它自己的字符串中的下一个 View Controller 。 ),在这个类中,我以编程方式使用自定义数据创建了一个 ScrollView ,但是我收到错误 Cannot use instance member 'itemOne' inside property initializer;属性初始值设定项在“self”可用之前运行。我理解这个错误的含义,并且我已经尝试过惰性变量,但考虑到以前的 View Controller 需要该变量来发送 url 数据(如果这有意义的话),我认为它不会起作用。那么,当您需要将数据发送到该变量时,您会如何处理,这是我的代码:

class HomeViewController: UIViewController {

// Variables use with the previous view controller to send data between them

var itemOne: String?
var itemTwo: String?
var itemThree: String?
var itemFour: String?

override func viewDidLoad() {
super.viewDidLoad()

view.addSubview(collectionView)
collectionView.backgroundColor = .white
collectionView.topAnchor.constraint(equalTo: view.topAnchor, constant: 150).isActive = true
collectionView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 16).isActive = true
collectionView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -16).isActive = true
collectionView.heightAnchor.constraint(equalTo: collectionView.widthAnchor, multiplier: 0.5).isActive = true

collectionView.delegate = self
collectionView.dataSource = self

}

fileprivate let data = [
CustomData(title: "Test", image: #imageLiteral(resourceName: "ss-1"), url: itemOne!), // ERROR
CustomData(title: "Test2", image: #imageLiteral(resourceName: "done-button"), url: itemTwo!), // ERROR
CustomData(title: "Test2", image: #imageLiteral(resourceName: "notificationIcon"), url: itemThree!) // ERROR
]
/....

最佳答案

您可以使数据成为计算属性

var data: [CustomData] {
return [
CustomData(title: "Test", image: #imageLiteral(resourceName: "ss-1"), url: itemOne!),
CustomData(title: "Test2", image: #imageLiteral(resourceName: "done-button"), url: itemTwo!),
CustomData(title: "Test2", image: #imageLiteral(resourceName: "notificationIcon"), url: itemThree!)
]
}

关于swift - 从上一个 View 获取数据时如何分配同一类中相互使用的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59610862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com