Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c Facebook iOS登录-未调用委托方法_Objective C_Ios_Facebook - Fatal编程技术网

Objective c Facebook iOS登录-未调用委托方法

Objective c Facebook iOS登录-未调用委托方法,objective-c,ios,facebook,Objective C,Ios,Facebook,我正在尝试为我的一个应用程序实现Facebook登录,并且没有调用委托方法-fbdilogin:/应用程序:handleopeanurl:/fbdilnotlogin:。这是我正在使用的代码。非常感谢您的帮助 - (void)viewDidLoad { ... facebook = [[Facebook alloc] initWithAppId:kFacebookAppId]; } -(IBAction) loginWithFacebook:(id)sender {

我正在尝试为我的一个应用程序实现Facebook登录,并且没有调用委托方法-
fbdilogin:
/
应用程序:handleopeanurl:
/
fbdilnotlogin:
。这是我正在使用的代码。非常感谢您的帮助

- (void)viewDidLoad
{
    ... 
    facebook = [[Facebook alloc] initWithAppId:kFacebookAppId];
}

-(IBAction) loginWithFacebook:(id)sender {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    if ([defaults objectForKey:@"FBAccessTokenKey"] 
        && [defaults objectForKey:@"FBExpirationDateKey"]) {
        facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
        facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
    }
    if (![facebook isSessionValid]) {
        NSArray* permissions =  [[NSArray arrayWithObjects:
                              @"email", nil] retain];
        [facebook authorize:permissions delegate:self];
    }
}

#pragma mark - Facebook delegate

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    return [facebook handleOpenURL:url]; 
}

- (void)fbDidLogin {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
    [defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
    [defaults synchronize]; 
}

-(void) fbDidNotLogin:(BOOL)cancelled {

}

-(void) fbDidLogout {

}
我在
info.plist
文件中的相应条目下也有Facebook应用程序ID。我在使用Facebook:登录的
方法中有断点,它们成功命中。
[facebook authorize:][/code>方法也会被调用

谢谢,

Teja.

哦,我刚刚意识到
应用程序:handleOpenURL:
方法是一种iOS应用程序委托方法。我把它放在一个UIViewController里了。将它移动到正确的位置,它就可以工作。

应用程序:handleOpenURL:calls,而不调用委托方法。问题应该是什么

您是否确保将自己设置为FBSessionDelegate?我认为
[facebook autorize:permissions delegate:self]
会设置会话委托。我也尝试过使用
[FacebookSetSessionDelegate:self]
进行设置,但仍然得到相同的结果。