21 votes

Nom d'accès de l'objet enveloppé, dans la mise en œuvre de l'enveloppe de propriété Swift.

J'utilise les enveloppes de propriétés Swift pour définir quelque chose comme.. :

@MyWrapper var foo: Int

Et dans l'implémentation de l'enveloppe de propriété, j'aimerais accéder au nom de la variable, foo, sous forme de chaîne. Quelque chose comme ceci :

@propertyWrapper
public struct MyWrapper<Type> {
  init() {
    // Get access to "foo" -- name of var as String
  }
}

Des suggestions ?

1voto

Yodagama Points 2224

Pour passer le nom d'une variable au wrapper, vous pouvez utiliser cette méthode alternative.

@propertyWrapper
public struct MyWrapper<Type> {

  var wrappedValue: ... {
  set{.....}
  get{.....}
  }

  init(wrappedValue initialValue: Double, _ nameOfTheVariable: String ) {
      precondition(!nameOfTheVariable.isEmpty)
      //you can access nameOfTheVariable here
  }  
}

puis utilisez-le comme ci-dessous,

   @MyWrapper("foo") var foo: Int

Remarque : dans la méthode init, la mention wrappedValue est obligatoire. A moins que, Cela n'a pas fonctionné pour moi.

( init( valeur wrappedValue Valeur initiale : Double, _ nameOfTheVariable : Chaîne ) )

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X