* 由于未捕获的异常'NSInvalidArgumentException'而终止应用,原因:' - [Facebook authorize:delegate:]:发送到实例的无法识别的选择器 0x684fe80'
- (void)loginToFacebook:(id) loginDelegate
{
NSLog(@"login facebook method");
fbServiceRequestingobj = loginDelegate;
NSArray* permissions = [[NSArray alloc] initWithObjects:@"publish_stream", nil];
[facebook authorize:permissions delegate:self];
}
答案 0 :(得分:1)
消息非常简单:您设置为委托的参数loginDelegate
不响应选择器。在设置时验证参数:
- (void)loginToFacebook:(id)loginDelegate
{
assert([loginDelegate respondsToSelector:@selector(authorize:delegate:)]);
在这种情况下,有可能是好的,有问题的选择器是您期望采用的协议的@required
方法。如果是这样,那么您作为loginDelegate
传递的参数将需要实现协议中声明的方法authorize:delegate:
。
采用协议时,如果您没有实现所需的方法,编译器会通知您。
答案 1 :(得分:0)
[facebook authorize:permissions delegate:self];
“facebook”对象是否存在此方法?我想象不会,因为它崩溃说这个方法不存在,因此“无法识别的选择器被发送到实例”。