未捕获的异常'NSInternalInconsistencyException'必须通过调用+ initializeFacebookWithApplicationLaunchOptions来初始化PFFacebookUtils

时间:2015-05-08 19:09:22

标签: ios objective-c facebook parse-platform

使用我的第一个ios应用程序(实际上是第一个应用程序)!我正在尝试实现一个与Parse的PFUser一起使用的facebook登录界面。

我有一个UIButton“使用Facebook登录”,它使用以下代码连接到某个操作:

-(IBAction) facebookLogin:(id)sender {

[PFFacebookUtils logInInBackgroundWithReadPermissions:self.permissions block:^(PFUser *user, NSError *error) {
    if (!user) {
        NSLog(@"Uh oh. The user cancelled the Facebook login.");
    } else if (user.isNew) {
        NSLog(@"User signed up and logged in through Facebook!");
    } else {
        NSLog(@"User logged in through Facebook!");
    }
}];
}

我在哪里

@property (strong, nonatomic) NSArray *permissions;

self.permissions = @[@"public_profile"];

所以它运行正常,但当我按下Ios Simulator中的“使用FaceBook登录”按钮时,应用程序终止,我在终端中看到以下内容:

由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'您必须通过调用+ initializeFacebookWithApplicationLaunchOptions'来初始化PFFacebookUtils

这对我没有意义,因为在我的AppDelegate.m文件中我初始化了Facebook:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {


[Parse enableLocalDatastore];


[Parse setApplicationId:@"..."
              clientKey:@"..."];

return [[FBSDKApplicationDelegate sharedInstance] application:application
                                didFinishLaunchingWithOptions:launchOptions];

[PFAnalytics trackAppOpenedWithLaunchOptions:launchOptions];

[PFFacebookUtils initializeFacebookWithApplicationLaunchOptions:launchOptions];

return 1;
}

我很感激任何帮助!

1 个答案:

答案 0 :(得分:1)

如果第二个示例代码正确,它将在语句中返回:

return [[FBSDKApplicationDelegate sharedInstance] application:application

并且不执行以下行。从该语句中删除return,以便执行folloowing语句。

此后:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

必须返回BOOL,返回语句应为YES,而不是1。 Objectice中的布尔值为YESNO