Je viens de mettre à jour mon projet à Swift 2.
J'utilise l'un des membres de ma classe Swift avec l'association ObjC.
J'ai le suivant:
objc_AssociationPolicy( OBJC_ASSOCIATION_RETAIN_NONATOMIC)
Depuis la mise à jour, le compilateur renvoie Use of unresolved identifier 'OBJC_ASSOCIATION_RETAIN_NONATOMIC'
.
Une idée pourquoi?
Edit: Pour ceux qui ont le même problème, une solution temporaire consisterait à remplacer la constante par sa valeur, à savoir. 1: objc_AssociationPolicy( rawValue: 1 )
Si vous regardez l'en-tête Swift du runtime obj c, il apparaît que cette construction est devenue une énumération:
/**
* Policies related to associative references.
* These are options to objc_setAssociatedObject()
*/
enum objc_AssociationPolicy : UInt {
case OBJC_ASSOCIATION_ASSIGN
case OBJC_ASSOCIATION_RETAIN_NONATOMIC
case OBJC_ASSOCIATION_COPY_NONATOMIC
case OBJC_ASSOCIATION_RETAIN
case OBJC_ASSOCIATION_COPY
}
Vous pouvez donc remplacer par: objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC
.
Si vous avez besoin du jeton en tant que UInt, vous pouvez toujours utiliser .rawValue.
(Dans la version précédente, objc_AssociationPolicy
était juste un typealias pour UInt - avec pour effet de transtyper 'OBJC_ASSOCIATION_RETAIN_NONATOMIC', un Int)
Essaye ça:
import ObjectiveC.runtime
func setOverlay(view: UIView)
{
objc_setAssociatedObject(self, &AssociatedKeys.overlayKey, view, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
}