检查 CLPlacemark 的名称是否为街道地址

Check if CLPlacemark's name is a street address

是否可以检查 CLPlacemark's 名称是否为街道地址?

如果是购物中心、主题公园、学校或其他有趣的东西,我想显示名称,但如果是街道地址,则不显示。

我正在考虑使用这样的正则表达式来检查名称是否是街道地址

^\d+ ([a-zA-Z0-9'-] ?)+$

但我觉得这并不总是奏效,尤其是在其他国家/地区。

有什么方法可以检查 CLPlacemark 的名称是否为街道地址,例如检查地标的大小,或者我必须使用第三方库吗?

尝试对照 CLPlacemark 的 thoroughfare(街道)和 subThoroughfare(街道编号)检查 name

var placemark: CLPlacemark
if placemark.name.rangeOfString(placemark.thoroughfare) != nil
    && placemark.name.rangeOfString(placemark.subThoroughfare) != nil {
        println("Name is likely the same as address")
} else {
    println("Name is distinct from street address")
}

还有一个 CLPlacemark 属性 "AreaOfInterest" 您可以查看。这通常被标记为具有一般类别的区域,例如机场、购物中心、学校、博物馆等。

由于您想要删除本质上不感兴趣的任何内容,也许此字段可以为您完成工作?