gpt4 book ai didi

ios - Mapkit 中未解析的标识符

转载 作者:行者123 更新时间:2023-11-30 12:44:06 25 4
gpt4 key购买 nike

下面的代码是关于堆栈溢出的相同问题。然而,代码看起来像是在 swift 2 中。我为某些代码添加了图像 jj,但收到 1 条错误消息。错误消息为var anView = thisMAP.dequeueReusableAnnotationView(withIdentifier:reuseId)。错误消息指出reuseId 是未解析的标识符 这是唯一的错误消息。如果这是固定的,代码将编译。

import UIKit
import MapKit

class Annotation: NSObject, MKAnnotation
{
var coordinate: CLLocationCoordinate2D = CLLocationCoordinate2D(latitude: 0.0, longitude: 0.0)
var custom_image: Bool = true
var color: MKPinAnnotationColor = MKPinAnnotationColor.purple
}
class ViewController: UIViewController, MKMapViewDelegate {
@IBOutlet var thisMAP: MKMapView!

override func viewDidLoad() {
super.viewDidLoad()

self.thisMAP.delegate = self;

let annotation = Annotation()
thisMAP.addAnnotation(annotation)

let annotation2 = Annotation()
annotation2.coordinate = CLLocationCoordinate2D(latitude: 0.0, longitude: 1.0)
annotation2.custom_image = false
thisMAP.addAnnotation(annotation2)

let annotation3 = Annotation()
annotation3.coordinate = CLLocationCoordinate2D(latitude: 1.0, longitude: 0.0)
annotation3.custom_image = false
annotation3.color = MKPinAnnotationColor.green
thisMAP.addAnnotation(annotation3)
}

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
if (annotation is MKUserLocation) {
return nil
}

var anView = thisMAP.dequeueReusableAnnotationView(withIdentifier: reuseId )

if anView == nil {
if let anAnnotation = annotation as? Annotation {
if anAnnotation.custom_image {
let reuseId = "jj.png"
anView = MKAnnotationView(annotation: annotation, reuseIdentifier: reuseId)
anView.image = UIImage(named:"jj.png")
}
else {
let reuseId = "pin"
let pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId)
pinView.pinColor = anAnnotation.color
anView = pinView
}
}
anView.canShowCallout = false
}
else {
anView.annotation = annotation

最佳答案

在这一行中,reuseID 在这个地方是未知的 - 仅在 if-else block 内,这就是为什么它是错误 reuseId 是一个无法解析的标识符:

    var anView = thisMAP.dequeueReusableAnnotationView(withIdentifier: reuseId )

您只能在定义它的范围内使用它。

reuseID的定义放在此行之前!

它应该与您在 if anAnnotation.custom_image {

中定义的 reuseId 相同

关于ios - Mapkit 中未解析的标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41864475/

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