2011-09-20 2 views
0

J'utilise Facebook SDK dans mon application, mais j'ai besoin d'aide pour savoir ce qui se passe lorsque le processus de connexion est annulé. J'ai essayé de référencer un autre contrôleur, mais il se bloque et j'obtiens une erreur de Instance variable 'textview_facebook' accessed in a class method.Comment appeler une méthode dans fbDialogNotLogin?

Il semble que je ne puisse pas faire de changements graphiques dans ce genre de méthode ... comment puis-je contourner cela?

Un conseil? Merci d'avance!

Facebook.m

- (void)fbDialogNotLogin:(BOOL)cancelled { 
    if ([self.sessionDelegate respondsToSelector:@selector(fbDidNotLogin:)]) { 
    [_sessionDelegate fbDidNotLogin:cancelled]; 
     NSLog(@"Facebook Cancelled!!!"); 
     [MapViewController stuffIsCancelled]; 
    } 
} 

MapViewController.m

+(void)stuffIsCancelled { 
     [UIView beginAnimations:nil context:NULL]; 
     [UIView setAnimationDuration:0.4]; 

     textview_facebook.alpha = 0; 

     [UIView commitAnimations]; 
     } 
+0

Quelle est la méthode exactement introuvable? La méthode stuffIsCanceled est-elle également définie dans MapViewController.h? – Alin

+0

J'ai écrit le mauvais avertissement ... il dit réellement 'Instance variable 'textview_facebook' accédé dans une méthode de classe' –

Répondre

1

Parce que vous êtes dans une méthode de classe vous ne pouvez pas accéder aux propriétés d'instance, vous avez seulement l'accès à des variables statiques.

En fonction de la structure de votre projet, vous pouvez:

  • Définissez le délégué de session à l'MapViewController en supposant que vous appelez la connexion de celui-ci, mettre en œuvre la méthode fbDidNotLogin et déplacer les trucs des animations en elle.
  • Rendez le MapViewController un singleton et faites stuffIsCanceled une méthode d'objet.
  • Faire la textview_facebook statique
+0

Salut Alin, merci pour votre aide! Je dois admettre que je suis assez nouveau dans tout ça ... quel chemin recommanderiez-vous? –

+0

Je pense que le premier est le meilleur pour vous en ce moment. – Alin

Questions connexes