[Swift] De la bonne utilisation de _ObjectiveCBridgeable

PyrohPyroh Membre
avril 2016 modifié dans Objective-C, Swift, C, C++ #1

Bonsoir.


 


Je m'amuse toujours avec ma petite structure CGAngle.


L'idée est que j'aimerai pouvoir l'utiliser comme un CGFloat et de pouvoir le bridger directement à  Objective-C ce qui me permettrait sur une subclasse de CALayer d'avoir une propriété de ce genre: @NSManaged var angle: CGAngle.


 


J'ai conformé CGAngle au protocol _ObjectiveCBridgeable si bien que let a: AnyObject = CGAngle(M_PI) fonctionne et prouve au passage que le bridging fonctionne.


 


Si par contre je declare @NSManaged ou même simplement dynamic une propriété de type CGAngle j'ai droit à  ces erreur :



error: property cannot be marked dynamic because its type cannot be represented in Objective-C


error: property cannot be marked @NSManaged because its type cannot be represented in Objective-C


note: Swift structs cannot be represented in Objective-C

Or CGFloat est aussi une "Swift struct" et ça n'empêche rien. 


CGAngle partage un sacré paquet de lignes de code avec CGFloat (j'ai fait mon marché sur apple/swift) et normalement devrait fonctionner presque pareil.


 


J'ai fouillé le repo de swift sur Github et je n'ai rien trouvé de probant. Il y a un piège ou une limitation que je ne connais pas ?


Réponses

Connectez-vous ou Inscrivez-vous pour répondre.