Je veux utiliser 2 constante et ils doivent être initialisés à partir de la valeur de retour d'une fonction. Je veux utiliser ces deux constantes dans le même fichier et également la fonction et les constantes sont dans un même fichier.Initialisation d'une variable globale avec la valeur de retour de fonction
class myclass{
static var ip :String
static var host :String
init(ip :String, host :String) {
let myconstant = self.setEnvVariables()
let ip = myconstant.0
let host = myconstant.1
}
internal func setVariables() -> (String , String){
let ip,host: String
if (some condition) != nil){
ip = "127.0.0.1"
host = "http://youraddress.com"
}
else{
ip = "10.12"
host = "http://myaddress.com"
}
return (ip,host)
}
La première mise en œuvre fonctionne! aussi j'ai essayé la deuxième approche classe MyClass {private static laisser ipHost = setVariables() statique laisser ip = ipHost.0 hôte let statique = ipHost.1 } Mais il donne erreur Impossible d'utiliser membre d'instance ' setEnvVariables 'dans l'initialisateur de la propriété; les initialiseurs de propriétés s'exécutent avant que 'self' soit disponible –
@KIFtest Vous avez raison! Je pensais que cette fonction était globale :-(Vous devez la déclarer 'static' et l'appeler en utilisant votre nom de classe comme préfixe.J'ai mis à jour ma réponse, veuillez réessayer;) –