我正在为 iOS6 编写 Facebook 解析器。昨天,我做了一个只有解析器的测试项目。这工作得很好。当我想在我的更大项目中实现解析器(使用完全相同的方法代码)时,会给出“解析错误:预期]”。社会和帐户的导入已设置。这是给出错误的行:
SLRequest *retrieveWall = [SLRequest requestForServiceType:SLServiceTypeFacebook requestMethod:SLRequestMethodGET URL:newsFeed parameters:nil];
这是完整的方法:
-(void)fetchFacebookFrom:(NSString*)userID withAppKey:(NSString*)appKey
{
ACAccountStore *accountStore = [[ACAccountStore alloc] init];
ACAccountType *accountType = [accountStore
accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
NSDictionary *options = @{
@"ACFacebookAppIdKey" : appKey,
@"ACFacebookPermissionsKey" : @[@"email"],
@"ACFacebookAudienceKey" : ACFacebookAudienceEveryone
};
[accountStore requestAccessToAccountsWithType:accountType
options:options completion:^(BOOL granted, NSError *error) {
if(granted)
{
NSArray *arrayOfAccounts = [accountStore
accountsWithAccountType:accountType];
if ([arrayOfAccounts count] > 0)
{
ACAccount *facebookAccount = [arrayOfAccounts lastObject];
NSURL *newsFeed = [NSURL URLWithString:@"https://graph.facebook.com/12345678901/feed"];
SLRequest *retrieveWall = [SLRequest requestForServiceType:SLServiceTypeFacebook requestMethod:SLRequestMethodGET URL:newsFeed parameters:nil];
retrieveWall.account = facebookAccount;
[retrieveWall performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error)
{
if (error)
{
NSLog(@"Error: %@", [error localizedDescription]);
}
else
{
// The output of the request is placed in the log.
NSDictionary *jsonResponse = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingAllowFragments error:nil];
NSArray *statuses = [jsonResponse objectForKey:@"data"];
}
}];
}
}
else
{
NSLog(@"Not granted");
}
}];
}
该错误具体指向方法调用中的“URL”。
这个愚蠢的错误已经让我发疯了 3 个小时。我重新启动了 XCode,清理了项目并重新启动了我的 Mac。谁看到错误?
编辑:似乎这个特定的代码不是问题。我也添加了核心数据,它有一些在方法名称中带有 URL 的函数。现在,方法名称中带有 URL 的每个函数都会给出解析错误并指向“URL”。越来越接近问题,但仍然不存在!