J'utilise le Facebook iOS SDK pour un projet et si j'ouvre un UIViewController après avoir fait une demande mais avant de recevoir une réponse, j'obtiens un EXC_BAD_ACCESS quand il essaie de voir si le délégué répond à un sélecteur. Eh bien, le délégué est le UIViewController qui a déjà sauté, donc il n'existe probablement plus.iOS Facebook SDK SDK ne conservant pas de délégué causant un EXC_BAD_ACCESS
Lors de la recherche sur ce problème je suis tombé sur this répondre ici sur SO qui me disent que je ne devrais pas avoir ce problème puisque le délégué est retenu. Mais la réponse est un peu ancienne et ils ont commencé à utiliser l'arc après cela. J'ai donc vérifié le SDK et remarqué qu'ils ne le retenaient plus.
Est-ce un problème connu? Est-ce que j'ai râté quelque chose?
J'ai essayé de modifier le SDK et de conserver le délégué et le problème disparaît. Néanmoins, je n'aime pas modifier les bibliothèques tierces car je n'ai pas beaucoup d'expertise et je ne suis pas sûr si l'arc est vraiment un problème dans cette situation (je pensais que nous n'avions pas besoin d'utiliser retaing/release/autorelease plus). En outre, je pensais que ce soit Facebook SDK, si c'était un bug quelqu'un devrait déjà trébuché sur le même problème et résolu.
EDIT: Je me rends compte maintenant que au moins la version que je utilise du SDK Facebook est de ne pas utiliser l'arc (je ne sais pas si elles soutiennent déjà) et le problème peut être ceci:
@property(nonatomic,assign) id<FBRequestDelegate> delegate;
Ne devrait-il pas être conservé?
EDIT2: Je suis désolé, j'ai ignoré un autre answer dans le même post lié plus tôt.
Il semble que ce que j'ai signalé est maintenant obsolète dans les versions plus récentes du SDK. La meilleure approche semble être d'annuler la demande.