J'ai une variable de tuple dans mon code, qui vient de réactivesWift: Comment puis-je déclarer cette variable tuple dans un protocole? P> ne fonctionne pas): p> Il apparaît une erreur de syntaxe: "getter / setter ne peut être défini que pour une seule variable" em> p > merci! p> p>
4 Réponses :
Votre définition de classe est défini sur deux propriétés, puis vous les attribuez à un tuple, mais ils sont toujours deux propriétés indépendantes. Vous pouvez voir cela si vous utilisez la syntaxe Ce que vous voulez ici est: < / p> Le type de Vous pouvez toujours être conforme à ce protocole avec la syntaxe utilisée par MyClass. P> P> init code> à la place (la syntaxe que vous utilisez est juste une commodité pour cela):
signal code> et
signalsender code> ne sont pas
signal
tuyau () code> renvoie. P>
Vous pouvez déclarer la variable comme celle-ci tant que la seule seule n'accepte qu'une variable. Cette variable sera donc tuple.
Type de votre propriété devrait être tuple, pas seulement une déclaration de classe / structure. Ainsi, regardez ce que votre à la déclaration de protocole Utilisez ces deux types p> puis implémentez ce protocole à votre classe et attribuez-la avec valeur de retour de puis lorsque vous avez besoin d'un élément de tuple, utilisez simplement P> tuyau () code> retourne. Il devrait renvoyer tuple avec deux types
tuyau () code> p>
tuple.signal
tuple.signalSender
Vous pouvez simplement définir votre protocole comme celui-ci:
class TestClass: MyProtocol { var (signal, signalObserver) = Signal<Bool, NSError>.pipe() //you can replace NSError with your custom error type }