J'ai mis à jour vers Xcode 8 beta 5, et j'obtiens maintenant l'erreur suivante sur une classe qui hérite de UIView:
Method does not override any method from its superclass
override public func intrinsicContentSize() -> CGSize
{
...
}
Y at-il un travail autour?
Veuillez vérifier la dernière référence . (Vous pouvez facilement le trouver en plaçant simplement le mot "intrinsicContentSize" dans la barre de recherche de site des développeurs d'Apple .)
Déclaration
var intrinsicContentSize: CGSize { get }
intrinsicContentSize
est devenu une propriété calculée, vous devez donc la remplacer de cette façon:
override open var intrinsicContentSize: CGSize {
get {
//...
return someCGSize
}
}
Ou simplement:
override open var intrinsicContentSize: CGSize {
//...
return someCGSize
}
Lors de la transition d'une version de Xcode à une autre, il existe différentes façons de savoir pourquoi votre code ne se compile plus. Voici quelques ressources pour intrinsicContentSize
:
intrinsicContentSize
dans developer.Apple.com .intrinsicContentSize
directement depuis page de référence de l'API Developer Apple pour UIView .intrinsicContentSize
avec le menu de recherche de votre navigateur (raccourci: cmd + F).intrinsicContentSize
dans la documentation et les références de l'API de Xcode (chemin: Help > Documentation and API Reference, raccourci: shift + cmd + ).UIView
initialiseur de votre code Xcode (par exemple, UIView()
), sélectionnez Jump to Definition puis effectuez une recherche de intrinsicContentSize
.Ces recherches vous montreront que intrinsicContentSize
, avec Swift 3 et iOS 10, n'est plus une méthode mais une propriété calculée de UIView
qui a la déclaration suivante :
var intrinsicContentSize: CGSize { get }
Par conséquent, vous devrez remplacer votre implémentation de la méthode intrinsicContentSize()
par l'extrait de code suivant:
override public var intrinsicContentSize: CGSize {
return ...
}