Ho la seguente classe scritta in una versione precedente di Swift. Il Swift 2 compilatore avverte che'kABPersonAddressStreetKey' era obsoleto in iOS 9.0: utilizzare CNPostalAddress.street
'kABPersonAddressStreetKey' stata sconsigliata a iOS 9.0: utilizzare CNPostalAddress.street
e dà un errore
'Non riesco a trovare un inizializzatore per tipo 'MKPlacemark' che accetta un elenco di argomenti di tipo '(coordinate: CLLocationCoordinate2D, addressDic tionary: [String: String?]) '
Mi rendo conto che sono necessari gli optionals per risolvere l'errore ma qualsiasi cosa provi non sembra risolvere il problema. Ciò è dovuto al fatto che io sono un novizio veloce e ogni aiuto sarebbe apprezzato.
import Foundation
import MapKit
import AddressBook
class Artwork: NSObject, MKAnnotation {
let title: String?
let locationName: String
let discipline: String
let coordinate: CLLocationCoordinate2D
init(title: String, locationName: String, discipline: String, coordinate: CLLocationCoordinate2D) {
self.title = title
self.locationName = locationName
self.discipline = discipline
self.coordinate = coordinate
super.init()
}
var subtitle: String? {
return locationName
}
// annotation callout info button opens this mapItem in Maps app
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
}
}
Questa è una vecchia domanda con una risposta già altamente motivata. In che modo la tua risposta differisce dalla risposta accettata? – JAL