2

*キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。

- (void)loginToFacebook:(id) loginDelegate
{
    NSLog(@"login facebook method");

    fbServiceRequestingobj = loginDelegate;

    NSArray* permissions = [[NSArray alloc] initWithObjects:@"publish_stream", nil];
    [facebook authorize:permissions delegate:self];

}
4

2 に答える 2

1

メッセージは非常に単純です。loginDelegateデリゲートとして設定したパラメーターは、セレクターに応答しません。設定時にパラメーターを確認するには、次のようにします。

- (void)loginToFacebook:(id)loginDelegate
{
  assert([loginDelegate respondsToSelector:@selector(authorize:delegate:)]);

このシナリオでは、問題のセレクターが、@required採用する予定のプロトコルのメソッドである可能性が高くなります。その場合、渡すパラメーターは、プロトコルで宣言されloginDelegateたメソッドを実装する必要があります。authorize:delegate:

プロトコルを採用するとき、コンパイラは、必要なメソッドを実装していない場合に通知できます。

于 2012-09-07T00:14:15.957 に答える
0
[facebook authorize:permissions delegate:self];

このメソッドは「facebook」オブジェクトに存在しますか? このメソッドが存在しないと言ってクラッシュしているため、「認識されていないセレクターがインスタンスに送信された」ため、そうではないと思います。

于 2012-09-07T00:12:41.183 に答える