次のコードをFacebookアカウントにログインし、ユーザーのFacebookの壁にコメントを投稿しました。それは正常に動作し、Facebookの壁に下記のすべてを掲示していますが、それは例外と終了アプリケーションの後に異常に投げます。私は頭をたくさん傷つけましたが、間違ったことは何も見つかりませんでした。誰でも私のコードで何が間違っているか教えてください。参考までにこのコードを組み合わせたlink1とlink2ありがとう!iPhone:Facebookのストリームを公開中に認識できないセレクタがインスタンス例外に送信されました
例外:
-[NSConcreteMutableData objectForKey:]: unrecognized selector sent to instance 0x34a560
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSConcreteMutableData objectForKey:]: unrecognized selector sent to instance 0x34a560'
Facebookのコードへのログイン:壁に
- (void)login {
NSLog(@"Logging into Facebook...");
UniversalAppAppDelegate *delegate = (UniversalAppAppDelegate *) [[UIApplication sharedApplication] delegate];
NSArray* requiredPermissions = [NSArray arrayWithObjects:@"read_stream", @"publish_stream", @"offline_access",nil];
if (![[delegate facebook] isSessionValid]) {
[delegate facebook].sessionDelegate = self;
[[delegate facebook] authorize:requiredPermissions];
}
}
投稿:
- (void)postCommentToFacebookWall:(NSString*)comment
{
UniversalAppAppDelegate *delegate = (UniversalAppAppDelegate *) [[UIApplication sharedApplication] delegate];
NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
kAppId, @"api_key",
@"This is test message from my iPhone App",@"message",
nil];
[[delegate facebook] requestWithMethodName:@"stream.publish"
andParams:params
andHttpMethod:@"POST"
andDelegate:self];
}
このコードで問題は見つかりませんでした。しかし、いくつかのNSMutableDataオブジェクトがNSDictionaryの代わりに使用されるように見えます。 NSDataには「objectForKey:」メソッドがありません。これは別の場所で発生する可能性があります。 – SVGreg
@SVGreg:実際には他の場所はありません!私はapp-delegateからcomment引数を持つpostcommentメソッドを呼び出します。私は自分のデータベースにコメントを送る。私がFacebookのコールにコメントを投稿した場合、すべて正常に機能します! Facebookにコメントを投稿すると問題になります。 – applefreak
コールバックメソッドを実装しましたか?あなたは "requestWithMethodName:"の代理人として自分自身を設定します。 – SVGreg