gpt4 book ai didi

ios - 如果 _ 是 _ 或 .isKind(of : ),正确的使用方法是什么

转载 作者:搜寻专家 更新时间:2023-11-01 06:25:58 25 4
gpt4 key购买 nike

我一直在努力实现这段代码。我正在将一些遗留代码转换为 swift,但我无法让 [annotation isKindofClass] 的等效项工作。

最初我做了类似的事情(给了我错误

mapView.annotations.forEach {
if !$0.isKind(of: MKUserLocation) {
self.mapView.removeAnnotation($0)
}
}

但我在 this 上阅读发布那个 swift 有不同的方式来做到这一点。

mapView.annotations.forEach {
if !$0 is MKUserLocation {
self.mapView.removeAnnotation($0)
}
}

这个给我错误:无法将类型 MKAnnotation 的值转换为预期的参数类型 BOOL

最佳答案

public func isKind(of aClass: AnyClass) -> Bool

这个函数需要AnyClass作为参数,你必须传递一个类,使用.self

    mapView.annotations.forEach {
if !$0.isKind(of: MKUserLocation.self) {
self.mapView.removeAnnotation($0)
}
}

当使用is时,必须用括号将表达式括起来:

    mapView.annotations.forEach {
if !($0 is MKUserLocation) {
self.mapView.removeAnnotation($0)
}
}

您正在检查 $0 的 bool 值,而不是 is 表达式,因此出现错误。

关于ios - 如果 _ 是 _ 或 .isKind(of : ),正确的使用方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54713692/

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