2012-03-24 38 views
0

我確實在我的AppDelegateFacebook的API 「在協議方法沒有實現」

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

,隨後在Facebook上開發的教程。但它仍然是做四次這樣的:

1)方法中聲明在這裏(​​)所需的直接或間接的協議 「FBSessionDelegate」(AppDelegate.h

- (void)fbDidNotLogin:(BOOL)cancelled; 

2):

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

有什麼我忘了?

謝謝!

回答

0

由於您的AppDelegate聲明遵循FBSessionDelegate協議,因此需要從該協議實現所有必需的方法。

,所以你需要在你的AppDelegate.m實現fbDidNotLogin方法類似

- (void)fbDidNotLogin:(BOOL)cancelled { 
    // Do something here 
} 
+0

* faceplant * - 那是什麼我(以爲我)已經做到了。 – DAS 2012-03-24 11:13:02

0

據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]; 
}