【问题标题】:Exception occur in facebook samplefacebook示例中出现异常
【发布时间】:2012-08-31 20:41:33
【问题描述】:

* 由于未捕获的异常 'NSInvalidArgumentException' 导致应用程序终止,原因:'-[Facebook 授权:委托:]:发送到实例的无法识别的选择器 0x684fe80'

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

    fbServiceRequestingobj = loginDelegate;

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

}

【问题讨论】:

    标签: iphone ios xcode


    【解决方案1】:

    消息非常简单:您设置为委托的参数loginDelegate 不响应选择器。设置时验证参数:

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

    在这种情况下很有可能,有问题的选择器是您希望采用的协议的@required 方法。如果是这样,那么您作为loginDelegate 传递的参数将需要实现协议中声明的方法authorize:delegate:

    在采用协议时,如果您没有实现所需的方法,编译器会通知您。

    【讨论】:

      【解决方案2】:
      [facebook authorize:permissions delegate:self];
      

      “facebook”对象是否存在此方法?我想不会,因为它说这个方法不存在会崩溃,因此是“发送到实例的无法识别的选择器”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-03
        • 1970-01-01
        相关资源
        最近更新 更多