swift - 搜索和调用兴趣点的电话号码

标签 swift maps phone-number

我创建了一段代码,用于搜索与放置在我应用中 map 上的图钉关联的电话号码:

func doCall(_ mapView : MKMapView! , didUpdateUserLocation userLocation : MKUserLocation, placemark:MKPlacemark )
{
    let request = MKLocalSearchRequest()
    let searchBar = resultSearchController!.searchBar
    request.naturalLanguageQuery = searchBar.text
    let span =  MKCoordinateSpan(latitudeDelta: 0.00000000001, longitudeDelta: 0.0000000001)
    let search = MKLocalSearch(request: request)
    search.start {MKLocalSearchResponse, error in
        for item in (MKLocalSearchResponse?.mapItems)! as [MKMapItem]
        {
            let optionalString = item.phoneNumber
            if let unwrapped = optionalString
            {

                let center = MKLocalSearchResponse!.mapItems.first!.placemark.coordinate
                request.region = MKCoordinateRegion(center: center, span: span)
                print(unwrapped)
                let cleanUrl = unwrapped.components(separatedBy: CharacterSet.decimalDigits.inverted).joined(separator: "")
                let url: URL = URL(string: "tel://" + (cleanUrl))!
                UIApplication.shared.openURL(url)
            }


    }
    }
}

但是,这段代码返回 10 个电话号码,并要求调用这 10 个中的每一个。我希望代码返回与该兴趣点相关联的单个电话号码,并要求我调用它。

最佳答案

考虑添加一个 break 语句。

if cleanUrl != nil {
    let cleanUrl = unwrapped.components(separatedBy: CharacterSet.decimalDigits.inverted).joined(separator: "")
    let url: URL = URL(string: "tel://" + (cleanUrl))!
            UIApplication.shared.openURL(url)
    break
}

所以,一旦一个电话号码。找到后,会发出一个警告,称该号码为 no。将显示并且 break 语句将中断循环并且不会为其余电话号码显示警报。

关于swift - 搜索和调用兴趣点的电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44230769/

相关文章:

swift - 约束类型别名不使用约束

maps - 如果使用链接 -static-libstdc++ 创建一个空的 dso,Dlclose 将无法工作

php - 根据 E 164 格式格式化电话号码

swift - 最前面的 UIView 与 TapGestureRecognizer 未接收触摸

json swift4 如何设置结构?

ios - 为什么它无法识别扩展中的这种类型?

Android google maps v2 mapfragment 或 fragment 内的 mapview

Java - 类型不匹配(但两者都来自相同类型?!) : cannot convert from HashMap<Integer, ArrayList<Integer>> 到 HashMap<Integer,ArrayList<Integer>>

python - 为什么 python Phonenumbers 库为 +358***** 的国家/地区提供 null?

regex - 恰好匹配 8 个数字和 0 个或多个破折号