Je suis les différents tutoriels pour apprendre à coder en Swift avec l’api SwiftUI.
j’ai commencé à écrire les scripts sous Xcode 11.5. je viens d’installer Xcode 12 beta.
je me retrouve avec un problème. J’ai souhaité mettre @AppStorage qui n’est valide que sous IOS 14.
je dois changer mon script en y ajoutant @available ( iOS 14.0, *) sur chaque structures qui utilisent la variable stockée en dur.
Dans les tutoriels, Maxime n’a pas besoin de mettre cette annotation.
cf : https://www.purplegiraffe.fr/courses/1065367/lectures/22791162
Y a t-il moyen de modifier la configuration du programme pour ne plus à spécifier l’annotation @available ?
cordialement,
Laisse tomber le @AppStorage, si tu veux une application tournant sur iOS 13 et iOS 14. De toute manière, c’est juste un « facilitateur » greffé par dessus le fichier UserDefaults. Le mécanisme de persistance des données codé pour iOS 13 tournera aussi sur iOS 14, donc pas la peine de perdre du temps dessus.
Bah oui, mais les tutoriels de Maxime sont écrits pour iOS 14 et Xcode 12 !
Rien ne t’empêche, sur les versions antérieures, d’utiliser UserDefaults dans sa forme ancienne
exemple :
if (@available iOS 14.0, *){
// with @Appstorage
}
else{
UserDefaults.standard.set(myName, forKey: « myName »)
UserDefaults.standard.synchronize()
pour écrire ton nom dans la rubrique « myName »
}
avec:
myName = UserDefaults.standard.value(forKey: « myName ») as String
pour la récupérer. Je n’ai pas cherché à bien utiliser les optionnels, mais là, il faut les utiliser car rien ne prouve qu’il y aura une valeur pour cette rubrique, cette clé.
bonjour,
Merci pour toutes ces réponse,
Pour draken :
En fait, c’est tout a fait le cas. je ne sais pas comment trouver cette « Target de compilation », j’ai eu beau cherché dans les options de Xcode, mais je n’arrive pas à trouver comment changer cette option.
Pour fJacquemin,
Merci pour l’exemple que tu m’as donné, je vais tester ce code et ensuite regarder le cours que Samir m’a conseillé.
Pour Samir,
Merci pour le conseil, je vais regarder de ce pas le cours qui concerne les property wrapper cela me permettra d’apprendre comment faire pour le rendre compatible avec IOS 13.