Facebook API "Метод в протоколе не реализован" - PullRequest
0 голосов
/ 24 марта 2012

Я сделал в моем AppDelegate:

@interface AppDelegate : UIResponder <UIApplicationDelegate, FBSessionDelegate> {
Facebook *facebook;
}

И следовал учебному пособию в Facebook для разработчиков. Но это все еще происходит в четыре раза, как:

1) Метод, объявленный здесь (Facebook.h):

- (void)fbDidNotLogin:(BOOL)cancelled;

2) Требуется для прямого или косвенного протокола "FBSessionDelegate" (AppDelegate.h):

@interface AppDelegate : UIResponder <UIApplicationDelegate, FBSessionDelegate> {
Facebook *facebook;
}

Я что-то забыл?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 15 июня 2012

В соответствии с примером Hackbook, вы должны добавить еще несколько методов:

- (void)storeAuthData:(NSString *)accessToken expiresAt:(NSDate *)expiresAt {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:accessToken forKey:@"FBAccessTokenKey"];
    [defaults setObject:expiresAt forKey:@"FBExpirationDateKey"];
    [defaults synchronize];}

    -(void)fbDidNotLogin:(BOOL)cancelled{
    }

    -(void)fbDidExtendToken:(NSString *)accessToken expiresAt:(NSDate *)expiresAt{

    NSLog(@"token extended");
    [self storeAuthData:accessToken expiresAt:expiresAt];
}

- (void)fbSessionInvalidated {
    UIAlertView *alertView = [[UIAlertView alloc]
                              initWithTitle:@"Auth Exception"
                              message:@"Your session has expired."
                              delegate:nil
                              cancelButtonTitle:@"OK"
                              otherButtonTitles:nil,
                              nil];
    [alertView show];
    [alertView release];
    [self fbDidLogout];
}
0 голосов
/ 24 марта 2012

Поскольку ваш AppDelegate утверждает, что следует протоколу FBSessionDelegate, ему необходимо реализовать все необходимые методы из этого протокола.

Поэтому вам необходимо реализовать метод fbDidNotLogin в вашем AppDelegate.m, например

- (void)fbDidNotLogin:(BOOL)cancelled {
    // Do something here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...