在swift 3中按下MKPointAnnotation时如何调用函数

代码阴影

我一直在尝试一切以获得注释以快速调用函数。我不知道我是否做错了什么,但它就是行不通。我试过在真正的 iphone 上测试我的项目,但也没有发生任何事情。

这是我的代码:

import UIKit
import MapKit
import Foundation
import CoreLocation

class ViewController: UIViewController, CLLocationManagerDelegate, MKMapViewDelegate {

//Map

@IBOutlet weak var map: MKMapView!

let manager = CLLocationManager()

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
{
    let location = locations[0]

    let span:MKCoordinateSpan = MKCoordinateSpanMake(0.01, 0.01)
    let myLocation:CLLocationCoordinate2D = CLLocationCoordinate2DMake(location.coordinate.latitude, location.coordinate.longitude)
    let region:MKCoordinateRegion = MKCoordinateRegionMake(myLocation, span)
    map.setRegion(region, animated: true)

    let request = MKLocalSearchRequest()
    request.naturalLanguageQuery = "coffee"

    // Set the region to an associated map view's region
    request.region = map.region

    let search = MKLocalSearch(request: request)
    search.start { response, error in
        guard let response = response else {
            print("There was an error searching for: \(String(describing: request.naturalLanguageQuery)) error: \(String(describing: error))")
            return
        }

        for item in response.mapItems
        {
            print("URL=\(String(describing: item.url ?? nil))")
            print("Name=\(String(describing: item.name ?? nil))")
            print("Phone Number\(String(describing: item.phoneNumber ?? nil))")


            let annotation = MKPointAnnotation()
            annotation.coordinate = item.placemark.coordinate
            annotation.title = item.name
            self.map.addAnnotation(annotation)
        }
    }
    self.map.showsUserLocation = true
}


override func viewDidLoad() {
    super.viewDidLoad()

    manager.delegate = self
    manager.desiredAccuracy = kCLLocationAccuracyBest
    manager.requestWhenInUseAuthorization()
    manager.startUpdatingLocation()
}

func callThisFunction() {
    print("The function has been called.")
}

func mapView(mapView: MKMapView, didSelectAnnotationView view: MKAnnotationView) {
    callThisFunction()
}

我看过很多关于如何做到这一点的文章,但我不能完全做到。任何关于我的代码的提示都会很棒,谢谢。

延斯·彼得

添加

map.delegate = self

到您的 viewDidLoad()

哦,Xcode 告诉我,

实例方法 'mapView(mapView:didSelectAnnotationView:)' 几乎匹配协议 'MKMapViewDelegate' 的可选要求 'mapView(_:didSelect:)'

您也应该使用“修复”按钮修复它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Swift:按下Back时调用的函数

来自分类Dev

在swift3中按下按钮时如何以编程方式执行segue或呈现视图

来自分类Dev

调用函数时,函数中的项目变为 nil - Swift 3

来自分类Dev

如何在Swift中按下按钮时使滑块出现?

来自分类Dev

如何在Swift中按下按钮时使滑块出现?

来自分类Dev

在 swift3 中从 AppDelegate 调用函数

来自分类Dev

Swift中的全局函数调用?如何?

来自分类Dev

Swift,如何调用GameScene扩展中的函数?

来自分类Dev

Swift中的全局函数调用?如何?

来自分类Dev

Swift中的MapKit,第3部分-MKPointAnnotation,addAnnotations

来自分类Dev

在Swift中按下UITextfield上的返回按钮时,如何添加空格?

来自分类Dev

在Swift中按下按钮时创建if语句

来自分类Dev

在 Swift 中按下按钮时返回字符串

来自分类Dev

Swift:如何调用调用随机函数的函数?

来自分类Dev

Swift:如何调用NSSpeechRecognizer函数

来自分类Dev

如何从TypeScript调用Swift函数

来自分类Dev

Swift:如何调用NSSpeechRecognizer函数

来自分类Dev

在Swift中调用可选函数

来自分类Dev

Swift中函数调用失败

来自分类Dev

Swift 中的函数调用问题

来自分类Dev

Swift:尝试在实例函数中调用闭包时出错

来自分类Dev

在Swift代码中调用C ++函数时读取文件失败

来自分类Dev

如何在Swift中从扩展名中调用函数

来自分类Dev

Swift 3:如何在按下 UI 按钮时删除 Core Data 中的单个记录

来自分类Dev

无法在 Swift 3 中调用非函数类型“UICollectionView”的值

来自分类Dev

Swift:如何从Swift调用CCKeyDerivationPBKDF

来自分类Dev

Swift:调用函数时创建UI

来自分类Dev

如何在Swift中调用AWS Lambda函数

来自分类Dev

如何在Xcode Debugger中调用嵌套的Swift函数?

Related 相关文章

热门标签

归档