【问题标题】:Unique set of MKAnnotations独特的 MKAnnotations 集
【发布时间】:2018-10-03 12:24:25
【问题描述】:

所以我要做的是更新mapview 上的注释,但我想先将它们放入一个集合中,以便检查现有的、新的和已删除的注释。因此,我正在检查 Hashable protocol 的一致性

Protocol 'Hashable' 只能用作通用约束,因为 它有 Self 或关联的类型要求

关于如何做我想做的事的任何想法

var set: Set<Hashable> = Set()
for annotation in self.annotations {
     guard let hashable = annotation as? Hashable else { continue }
     set.update(with: hashable)
}

【问题讨论】:

    标签: swift mkannotation hashable


    【解决方案1】:

    所以我最终得到的是这个

    let newHashValues = Set(new.map{ $0.hash })
    let existingHashValues = Set(self.annotations.map{ $0.hash })
    
    let removedHashes = existingHashValues.subtracting(newHashValues)
    let addedHashed = newHashValues.subtracting(existingHashValues)
    
    let removed = self.base.annotations.filter({ removedHashes.contains($0.hash) })
    let added = element.filter({ addedHashed.contains($0.hash) })
    
    self.removeAnnotations(removed)
    self.addAnnotations(added)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-22
      • 2021-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-21
      相关资源
      最近更新 更多