J'ai commis l'erreur de mettre à jour mon projet à Swift 4.2 sans attendre la mise à jour des pods. J'ai lentement mis à jour tout mon code, mais il y a une ligne que je n'arrive pas à comprendre. .
var animationRect = UIEdgeInsetsInsetRect(frame, UIEdgeInsets(top: padding, left: padding, bottom: padding, right: padding))
L'erreur que je reçois est,
UIEdgeInsetsInsetRect 'a été remplacé par la méthode d'instance' CGRect.inset (by :)
Toute l'aide pouvant etre apportée serait très appréciée!
L'erreur c'est assez explicite. Vous pouvez l'utiliser comme ceci:
var animationRect = frame.inset(by: UIEdgeInsets(top: padding, left: padding, bottom: padding, right: padding))
ou simplement
var animationRect = frame.insetBy(dx: padding, dy: padding)
Swift 4.2 et Xcode 1
Plus tôt c'était comme ça -
let bounds = UIEdgeInsetsEqualToEdgeInsets(view.bounds,view.safeAreaInsets)
Maintenant pour Swift 4.2 -
let bounds = view.bounds.inset(by: view.safeAreaInsets)
UIEdgeInsets in Swift 4.2
Version précédente
let padding = UIEdgeInsets(top: 0, left: 40, bottom: 0, right: 5) override func textRect(forBounds bounds: CGRect) -> CGRect { return UIEdgeInsetsInsetRect(bounds, padding) }
to Swift 4.2 and Xcode 10
let padding = UIEdgeInsets(top: 0, left: 40, bottom: 0, right: 5) override func textRect(forBounds bounds: CGRect) -> CGRect { return rect.inset(by: GlobalClass.language == "ar" ? paddingR : padding) }
Ce type de problèmes avec les pods peut également être résolu en réglant Swift_VERSION
pour un pod particulier.
post_install do |installer|
installer.pods_project.targets.each do |target|
if ['MessageKit'].include? target.name
target.build_configurations.each do |config|
config.build_settings['Swift_VERSION'] = '5.0'
end
end
end
end