使用我的第一个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;
}
我很感激任何帮助!
答案 0 :(得分:1)
如果第二个示例代码正确,它将在语句中返回:
return [[FBSDKApplicationDelegate sharedInstance] application:application
并且不执行以下行。从该语句中删除return
,以便执行folloowing语句。
此后:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
必须返回BOOL
,返回语句应为YES
,而不是1
。 Objectice中的布尔值为YES
和NO
。