2012-03-24 13 views
0

を私は私のAppDelegateで行った:FacebookのAPI "プロトコルのメソッド実装されていません"

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

そして、Facebook開発のチュートリアルを追いました。法)(ここで​​を宣言

1):

- (void)fbDidNotLogin:(BOOL)cancelled; 

2)直接または間接的なプロトコルに必要な "FBSessionDelegate"(AppDelegate.h):

@interface AppDelegate : UIResponder <UIApplicationDelegate, FBSessionDelegate> { 
Facebook *facebook; 
} 
しかし、それはまだのように4倍をやっています

忘れたことはありますか?

ありがとうございます!

答えて

0

AppDelegateはFBSessionDelegateプロトコルに従うと述べているため、このプロトコルから必要なすべてのメソッドを実装する必要があります。

ですから、Hackbook例によれば

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

を*がfaceplant * - それは何です私は(私は)すでにやったと思った。 – DAS

0

ようなあなたのAppDelegate.mにfbDidNotLoginメソッドを実装するために、あなたはいくつかのより多くのメソッドを追加する必要が必要があります。

- (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]; 
} 
関連する問題