0
votes

La méthode d'instance de référencement nécessite une équivalence (SWIFT)

J'essaie de tirer parti de SWIFTUI et de vous combiner pour stocker les paramètres par défaut des utilisateurs pour mon application. En regardant des suggestions dans quelques autres postes, j'ai mis à jour mon code comme vous le voyez ci-dessous. Cependant, je reçois maintenant l'erreur de "méthode d'instance de référencement" Envoyer () "sur" Sujet "exige que les types" Configuration "et" NOID "soient équivalents". Il a été suggéré que je change de "configuration" en annulation dans le déploiement dans le PASTHRUGHSUPJECJECT, mais cela donne alors un crash difficile dans l'application au démarrage - "Erreur fatale: aucun objet observable de type setup.Type trouvé."

Je suis à Un peu de perte ... tous les pointeurs seraient accueillis. xxx


1 commentaires

Je ne suis pas le meilleur codeur combiné, mais par votre définition de Vous indiquez au compilateur que dans votre Envoyer Vous passerez un Configuration instance, comme dans - Je pense - `` Objectwillchange.send ([Insérez votre instance de configuration ici]) `. Je ne vois tout simplement pas dans votre code exactement ce que cette "instance de configuration" est.


3 Réponses :


0
votes

La méthode envoie nécessite que vous transmettez le type d'entrée du sujet ou une échec de l'échec. Donc, votre envoyer doit passer la configuration ; xxx

qui dit, dans la plupart des codes SWIFTUI, passthroughsubject est (tel que envoyer () ne nécessite pas de paramètre). Ce n'est pas clair que la source de l'accident que vous décrivez est; Nous aurions besoin de voir le code impliqué dans l'accident pour déboguer cela. Je ne l'ai pas reproduit jusqu'à présent.


0 commentaires

0
votes

SWIFTUI n'utilise pas de passthroughsubject , il utilise un ObservableObjectPublisher . Je suis à peu près sûr que c'est un alias pour passthroughsubject mais je ne suis pas sûr. Le protocole ObservableObject Définit un objet ObjectWillChange pour vous, la meilleure chose à faire est de supprimer votre définition.

L'éditeur est objetwillchange willset et non distset , je ne suppose pas qu'il Peu importe beaucoup, mais Apple a changé de drette à willset et je suppose qu'ils ont eu une bonne raison.


0 commentaires

1
votes

L'erreur provient du fait que vous avez déclaré votre type comme configuration , mais vous appelez objetWillChange avec void .

Vous devez donc vous transmettre à l'objetWillChange: xxx

chose importante à remarquer est que vous devez appeler objetwillchange pas dans pas dans mais dans willset : xxx

Vous ne définissez jamais quelqueévaliebool, ce bit de code ne sera pas appelé de toute façon.

Votre configuration devrait ressembler à ce que ceci: xxx


1 commentaires

Merci que cela semble avoir fixé des problèmes majeurs en mai. Cela ne fonctionne toujours pas comme je pense, comme le code SWIFTUI où je modifie les valeurs ne semble pas "tirer" le code WILLET ().