0

私のアプリを介してFacebookに接続するには、IOS6で次の設定を行っています。

self.accountStore = [[ACAccountStore alloc] init];

ACAccountType *facebookAccountType = [self.accountStore
                                      accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];

// Specify App ID and permissions
NSDictionary *options = @{
                          ACFacebookAppIdKey: @"xxxxxxxxxxxxx",
                          ACFacebookPermissionsKey: @[@"publish_stream", @"publish_actions"],
                          ACFacebookAudienceKey: ACFacebookAudienceFriends
                          };

[accountStore requestAccessToAccountsWithType:facebookAccountType
                                      options:options completion:^(BOOL granted, NSError *e) {
                                          if (granted) {
                                              NSArray *accounts = [self.accountStore
                                                                   accountsWithAccountType:facebookAccountType];
                                              self.facebookAccount = [accounts lastObject];
                                              NSLog(@"Logged In :: %@",self.facebookAccount);

                                              [self uploadVideo];

                                          }
                                          else
                                          {
                                              NSLog(@"Logged In Fail");
                                          }
                                      }];

問題は、elseステートメントがあるUIAlertViewの形式でフィードバックを提供したいということです。以下を追加すると、アプリがEXC_BAD_ACCESSでクラッシュします

UIAlertView *alert = [[UIAlertView alloc]
                      initWithTitle: @"Unable To Connect With Facebook"
                      message: @"xxxxxxxxxxxxx."
                      delegate: nil
                      cancelButtonTitle:@"OK"
                      otherButtonTitles:nil];
[alert show];

アラートビューのないメソッドを呼び出すだけで、問題なく機能するようです。誰かアイデアはありますか?

4

1 に答える 1

1

完了ブロックがメインスレッドにあると確信していますか?

アラート ビュー コードをメイン スレッドへのディスパッチにラップしてみてください。

dispatch_async(dispatch_get_main_queue(), ^(void) {

});
于 2013-02-21T15:57:39.653 に答える