gpt4 book ai didi

arrays - Array.append 更改之前添加的值 - swift 4.0

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

我正在开发一个项目,该项目应该使用 GCD 同时从不同的服务器 URL 获取数据。它通过从服务器获取数据并更新 View 来按预期工作。

连接 Controller :

    private func initiateObjects() {
self.stationCounter = 1
self.request = StationRequests()
self.object = StationObject()
}

private func initiateRequests() {
request = StationRequests(self.stationCounter)
request.object = self.object
request.delegate = self
}

private func sendRequest() {
queueStation.async {
self.request.SendRequest()
}
}

private func updateView(_ obj: BaseObject?) {
DispatchQueue.main.async {
NotificationCenter.default.post(name: .dataFetched, object: nil, userInfo: ["item": obj ?? BaseObject()])
}
}

func managerDidReceived(data: Any, request: BaseRequest) {
let parsedObj = request.object?.Parse(data)
self.updateView(parsedObj)
}

View Controller :

    override func viewDidLoad() {
super.viewDidLoad()

self.initiateStationListService()
}

private func initiateStationListService() {
self.connection.initiate()
NotificationCenter.default.addObserver(self, selector: #selector(self.dataFetched(_:)), name: .dataFetched, object: nil)
}

@objc func dataFetched(_ notification: Notification) {
guard let items = notification.userInfo as? [String:StationObject] else { return }
guard let item = items["item"] else { return }
self.stationList.append(item) //HERE IS THE PROBLEM
self.collectionView?.reloadData()
}

问题是,当我想将获取的对象附加到我的列表以在 CollectionView 中显示时,列表项全部更改为最新的项。我的意思是,所有以前添加的项目都与最新的相同。因此,当我重新加载 CollectionView 时,所有记录都是相同的。加载的项目本身是正确的,没有问题。

最佳答案

尝试以下:

self.stationList += [item]
self.collectionView?.reloadData()

关于arrays - Array.append 更改之前添加的值 - swift 4.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50812183/

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