J'ai des moments difficiles avec des trucs de protocole rapide 3. Mon problème est que quand j'ai ce protocole:SWFT 3 Protocole Déclarant tableau avec des éléments de type avec @objc
@objc
protocol HHMapViewProtocol: class {
init()
func moveCamera(_ target: CLLocationCoordinate2D, zoom: Float, animated: Bool) -> Void
func moveCamera(_ target: CLLocationCoordinate2D, animated: Bool) -> Void
func positionCamera(on target: CLLocationCoordinate2D, facing at: CLLocationCoordinate2D, inDuration duration: CFTimeInterval)
func setWaypoints(_ waypoints: [CLLocationCoordinate2D])
}
La dernière méthode dans ce protocole génère une erreur car:
Method cannot be a member of an @objc protocol because the type of
the parameter cannot be represented in Objective-C
Ce que je ne comprends pas, c'est pourquoi le problème est uniquement dans Array. Si je tape:
func setWaypoints(_ waypoints: [NSObject])
Ensuite tout va bien. Pourquoi CLLocationCoordinate2D dans d'autres fonctions n'est pas un problème et dans le cas de tableau est un problème? Quelqu'un peut-il donner une bonne solution du point de vue de l'API parce que je veux que ce tableau soit paramétré. Je sais que CLLocationCoordinate2D est une structure et ceci ne peut pas être représenté dans Objective-C mais le compilateur ne se plaint pas des fonctions moveCamera et positionCamera.