Ich versuche in Swift eine Funktion zu schreiben, die ein MKMapItem erstellen, aber ich erhalte einen String-Fehler. Hier ist der Code:Argumenttyp Fehler auf MKPlacemark
func mapItem() -> MKMapItem {
let addressDictionary = [String(kABPersonAddressStreetKey): subtitle]
let placemark = MKPlacemark(coordinate: coordinate, addressDictionary: addressDictionary)
let mapItem = MKMapItem(placemark: placemark)
mapItem.name = title
return mapItem
}
Ich habe die folgende Fehlermeldung, wenn ich versuche placemark
zu erstellen:
Kann nicht konvertieren Wert vom Typ „[Zeichenfolge: Zeichenfolge]“ zu erwarten Argument Typ „[Zeichenfolge : ANYOBJECT]
Vollklassencode:
class Bar: NSObject, MKAnnotation {
// MARK: Properties
let id: Int
let title: String
let locationName: String
let url: String
let imageUrl: String
let tags: String
let coordinate: CLLocationCoordinate2D
// MARK: Initialisation
init(id: Int, adress: String, name: String, url: String, tags: String, imageUrl: String, coordinate: CLLocationCoordinate2D) {
// Affectation des attributs
self.id = id
self.title = name
self.locationName = adress
self.url = url
self.imageUrl = imageUrl
self.tags = tags
self.coordinate = coordinate
}
// MARK: Subtitle
var subtitle: String {
return locationName
}
// MARK: Helper
func mapItem() -> MKMapItem {
var addressDictionary : [String:String]?
addressDictionary = [String(kABPersonAddressStreetKey): subtitle]
let placemark = MKPlacemark(coordinate: coordinate, addressDictionary: addressDictionary)
let mapItem = MKMapItem(placemark: placemark)
mapItem.name = title
return mapItem
}
}
Danke für die Antwort! Tho, als ich versuchte, gab er mir einen Fehler auf die Untertitel Untertitel = "Bound-Wert in einer bedingten Bindung muss optionalen Typ sein", so habe ich nur die If-Bedingung entfernt und es hat alles gut funktioniert. – Kishlin
Der vorherige Fehler sah aus, als wäre Untertitel unoptionsmäßig, aber vielleicht ist es ein implizites, nicht eingepacktes, optionales. Aus Neugier, was ist die Erklärung dieser Variable? Wie auch immer, ich bin froh zu wissen, dass du dein Problem gelöst hast :) –
Ich habe den vollständigen Klassencode in meinem ersten Beitrag hinzugefügt. – Kishlin