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」を指すようになりました。問題に近づいていますが、まだそこにはありません!