Bir MKMapViewDelegate bir varsayılan uygulaması oluşturmak çalışıyorum ile '@objc' protokolünün opsiyonel gereksinimi karşılamak değildir:Sigara şöyle '@ objc' yöntemi koşullu uzantısını kullanarak koşullu uzantısı
extension MKMapViewDelegate where Self: NSObject {
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
...
}
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
...
}
}
Ben kod derleme
Ancak ben uyarısını
isteğe bağlı gereksinimi karşılamak değilolmayan olsun - '@ objc' yöntem '(MapView _: viewFor :)' '@objc' protokolü 'MKMapViewDelegate'
NSObject'e 'Benlik' konusundaki uygunluğun, uyarının gerçekleşmeyeceği anlamına geleceğini umdum. Uyarının üst kısmında temsilci örnekleri bir UIViewController olsa ve bu nedenle NSObject ile uyumlu olsa bile temsilci yöntemleri çağrılmaz.
'Nerede' uzantılarda nasıl çalıştığını yanlış anladım mı?
olası çift [olmayan - '' objc' yöntem '@objc' protokol isteğe bağlı gereksinimi karşılamak değil] (http://stackoverflow.com/questions/39487168/non -objc-metot-değil-tatmin-isteğe bağlı-nesne-protokol-gereği) –