【发布时间】:2020-05-20 22:43:11
【问题描述】:
我有一张地图,在我从数组中添加一个组件后,我希望从该数组中删除该特定组件。我尝试了过滤然后删除的方法,但它只从数组中删除了一项。我需要在使用后删除数组的每个项目。这是它的样子:
private var labelViews: [MapLabelView] = []
private func removeAllLabels() {
guard let mapController = viewModel.mapController,
let currentMap = mapController.currentMap else {
return
}
> labelViews.forEach { view in
> DispatchQueue.main.async {
> mapController.removeComponent(view, on: currentMap)
> self.labelViews.removeAll(where: {$0 == view})
if let index = self.campusLabelViews.firstIndex(of: view)
{self.campusLabelViews.remove(at: index)}//This is what I tried doing, but its only removing the first view and not ones after that.
}
【问题讨论】:
-
你能举个例子,你的数组在手术前后是什么样子的吗?
-
@koen 它是一组自定义对象,我正在检查删除后的计数,但是当它应该为空时,它只显示了一个更少的对象
-
你能写出来吗?例如之前:
["one", "two", "three"],之后:["two", three"]。或者类似的东西? -
@koen 有点难,因为它们是视图,但我正在使用的功能在上面发布
-
你需要获取所有索引 .. 而不是第一个正确的?