我在我的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;
}我是不是忘了什么?
谢谢!
发布于 2012-03-24 18:50:12
正如您的AppDelegate声明的那样,要遵循FBSessionDelegate协议,它需要实现该协议所需的所有方法。
因此您需要在AppDelegate.m中实现fbDidNotLogin方法,如下所示
- (void)fbDidNotLogin:(BOOL)cancelled {
// Do something here
}发布于 2012-06-16 01:47:37
根据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];
}https://stackoverflow.com/questions/9851063
复制相似问题