这是我的facebook方法:
- (void)getMeFacebook{
ACAccountStore *accountStore = [[ACAccountStore alloc] init];
__block ACAccount *facebookAccount = nil;
ACAccountType *facebookAccountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
// Specify App ID and permissions
NSDictionary *options = @{ACFacebookAppIdKey : @"1405219416361729",
ACFacebookPermissionsKey : @[@"email", @"publish_stream"],
ACFacebookAudienceKey:ACFacebookAudienceFriends};
[accountStore requestAccessToAccountsWithType:facebookAccountType
options:options completion:^(BOOL granted, NSError *error)
{
if (granted)
{
NSArray *accounts = [accountStore accountsWithAccountType:facebookAccountType];
facebookAccount = [accounts lastObject];
NSLog(@"Granted!!!");
}
else {
NSLog(@"error.localizedDescription======= %@", error.localizedDescription);
}
}];
NSArray *accounts = [accountStore accountsWithAccountType:facebookAccountType];
facebookAccount = [accounts lastObject];
NSLog(@"Break 1");
调试代码时,它永远不会评估是否(授权),似乎方法requestAccessToAccountsWithType表现不正常。我已经在应用程序中检查了facebook设置但仍然无法正常工作。
对这个问题有什么看法吗?
答案 0 :(得分:0)
经过几个小时的调试和研究后,我得到了解决方案,每当你必须在objective-c中调试一个方法的块(回调)时,它需要在块内添加额外的断点。
问题是同步问题,因为方法是在main.m中调用,而 UIAlert 请求允许访问iPhone中的Facebook数据永远不会出现。我将方法的调用移动到viewDidLoad,整个应用程序工作正常!