填充一个数组,然后调用一个函数
Posted
技术标签:
【中文标题】填充一个数组,然后调用一个函数【英文标题】:Fill an array and then call a function 【发布时间】:2020-05-11 14:47:41 【问题描述】:在完成获取数据时,我会收到一个数据项。我想将此项目附加到一个数组中,然后调用数据,我该怎么做?我如何告诉函数等到所有数据都附加到数组中 - 并且数据数量不同。
self?.dataModel.fetchExportCSV(id: id, completion: [weak self] in
switch $0
case .success(let data):
var arryData: [exportVO] = []
arryData.append(data)
//this is the fucntion that should be called after all the data are append to the array
createCSV(data: arryData)
【问题讨论】:
使用DispatchGroup
或Semaphores
你能给我举个例子吗
你是说你的完成处理程序被多次调用还是你多次调用fetchExportCSV
?
【参考方案1】:
self?.dataModel.fetchExportCSV(id: id, completion: [weak self] in
let dGroup = DispatchGroup()
switch $0
case .success(let data):
dGroup.enter()
var arryData: [exportVO] = []
arryData.append(data)
dGroup.leave()
//after switch case
dGroup.notify(queue: .main)
createCSV(data: arryData)
将 .enter() .leave() 添加到 switch 中的所有案例
More Info
Dispatch group
DispatchSemaphore
【讨论】:
以上是关于填充一个数组,然后调用一个函数的主要内容,如果未能解决你的问题,请参考以下文章