我有一个函数可以找到数组中相邻值的百分比差异。
var values = [1.623,1.614,1.591,1.577,1.600,1.579,1.622]
values.reverse()
let percentages = [0] + zip(values, values.dropFirst()).map {
(old, new) in
return (100.0 * (new - old) / old)
}
print(percentages)
Run Code Online (Sandbox Code Playgroud)
[0.0, -2.651048088779294, 1.3299556681444034, -1.4375000000000082, 0.8877615726062151, 1.44563162787878300000000000000000000000000000000082, 0.8877615726062151, 1.4458631626787840
有没有办法可以将我的值格式化为如下所示
["+0.006%","+0.014%","+0.009%","-0.014%","+0.013%","-0.027%"]
我在 a 中有项目tableview,我想重新加载或更新tableview数据,除了 tableview 的第一行或第一个索引路径。
let visibleIndex = self.tableView.visibleCells.compactMap {
tableView.indexPath(for: $0) }
self.tableView.reloadRows(at: visibleIndex, with: .automatic)
Run Code Online (Sandbox Code Playgroud)
但是,这会重新加载所有可见单元格,我如何重新加载除第一行之外的所有可见单元格
我有一组调度工作项,如何等到一项工作完成后再继续队列中的下一项工作?
func AsyncCalls(statusHandler: @escaping (String) -> Void){
var dispatchWorkItems : [DispatchWorkItem] = []
let categoryWorkItem = DispatchWorkItem {
main {
return statusHandler("Loading categories ")
}
self.modelView.getCategories(completion: { data,error in
main {
if data.isEmpty {
return statusHandler("\(error )")
}else{
return statusHandler("Done loading categories")
}
}
})
}
let itemsWorkItem = DispatchWorkItem {
main {
return statusHandler("Loading Inventory ")
}
self.modelView.getInventory(completion: { data,error in
main {
if data.isEmpty {
return statusHandler("\(error )")
}else{
return statusHandler("Done loading Inventory")
}
}
})
}
dispatchWorkItems.append(categoryWorkItem) …Run Code Online (Sandbox Code Playgroud) dispatch grand-central-dispatch dispatch-async swift dispatch-queue