2

*由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[Facebook authorize:delegate:]: unrecognized selector sent to instance 0x684fe80”

- (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 回答