2017-10-21 39 views
0

Je suis déjà nouveau dans Swift. Je cours l'application dans le simulateur. J'ai une liste de livres, lorsque je clique sur l'un d'eux, l'application montre des détails sur le livre sélectionné. Lorsque je clique sur "Modifier le livre", changez quelques détails et cliquez sur "Enregistrer le livre", il a mis en pause à la ligne 73erreur irrécupérable: trouvé de façon inattendue nil tout en déballant une valeur facultative - déléguer

Où est l'erreur? Pourquoi déléguer est "nul"? Merci.

enter image description here

Je crée le protocole et déclare « champ délégué comme suit:

enter image description here

En DetailViewController, je mis délégué du contrôleur comme suit: enter image description here

+0

vous n'avez affecté le délégué à personne. – dirtydanee

+0

Montrez-nous aussi où vous définissez le délégué ... – Ladislav

+0

@Ladislav I éditer la question. –

Répondre

2

Tout d'abord, assurez-vous de mettre en œuvre object.delegate = self dans la classe que vous souhaitez conformer au délégué

Aussi, je suggère de mettre en œuvre l'appel de méthode par le délégué comme:

delegate?.editBook(self, editBook: book) 

il ce cas, rien ne se passerait-il si le delegate pour une raison quelconque est nil au lieu de se briser.

En outre, vous pouvez vérifier this answer pour vous assurer que vous avez configuré le délégué comme il se doit (probablement, vous avez manqué la troisième étape de la réponse mentionnée).

+0

Merci pour la réponse. Je fais ce que vous avez suggéré et cela fonctionne. Mais il est difficile de comprendre quoi et pourquoi? –

+0

Content de vous aider. Avez-vous vérifié la réponse que j'ai mentionnée? –