2016-08-29 3 views
0

L'application de surveillance que je développe n'utilise pas ARC. Et ainsi je libère toutes les propriétés des objets dans chaque interface dans dealloc comme ci-dessous. Ceci provoque un plantage lorsque je ferme l'interface (par exemple pour revenir à l'interface principale). Pourquoi cela est-il ainsi?WatchKit sans ARC provoque un blocage lorsque dealloc

+0

* L'application de surveillance que je développe n'utilise pas l'ARC. * Parce que vous n'avez pas adopté l'ARC, vous vous efforcez a) de faire manuellement référence au nombre (ce qui entraînera plus de plantage ou de fuite) , au lieu de laisser les outils le faire automatiquement pour vous, et b) écrire du code obsolète maintenant qui devrait être porté dans le futur. –

+0

Je n'ai pas le choix, le projet en cours que l'application de surveillance va être attaché n'a pas ARC. – GeneCode

+0

Tout simplement parce qu'une application iOS existante n'a pas utilisé ARC, cela ne signifie pas qu'une nouvelle application de surveillance ne peut pas non plus utiliser ARC. Les paramètres de la cible * peuvent * remplacer les paramètres du projet. Cela permettra à votre application de surveillance d'être compilée avec le support ARC, tandis que votre application iOS peut continuer à ne pas utiliser ARC jusqu'à ce que vous la mettiez à jour. –

Répondre

1

Les rétentions et les versions doivent être équilibrées dans le contexte de votre classe. Vous ne l'avez probablement pas conservé lorsque vous avez affecté l'une de ces variables d'instance, et c'est donc une sur-publication. Vous pouvez essayer d'activer zombies pour attraper le message à une instance désallouée si c'est le cas.