iPhone:在Facebook上发布流时,无法识别的选择器发送到实例异常



我写了以下代码登录Facebook帐户,然后在用户的Facebook墙上发表评论。它运行良好,并在Facebook墙上发布了下面提到的所有内容,但它异常地抛出了以下异常和终止应用程序。我抓了很多头,但没有发现任何问题。有人能告诉我我的代码出了什么问题吗?仅供参考,我已经将链接1和链接2的代码组合在一起了。谢谢!

例外:

-[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];
}

我遇到了这个问题,直到我意识到我正在中搜索结果

  • (void)请求:(FBRequest*)请求didLoad:(id)结果

在发布和登录/授权时调用此方法。作为授权的一部分,我正在搜索对象/密钥,但当张贴到墙上时,结果返回为NSMutableData,而不是NSMUtableDict。只要确保你没有在这里搜索钥匙。。。

我没有发现这个代码有任何问题。但看起来似乎有一些NSMutableData对象试图使用NSDictionary。即NSData没有"objectForKey:"方法。这可能发生在其他应用程序中。

您是否实现了回调方法?您在"requestWithMethodName:"中将自己设置为委托。

相关内容

  • 没有找到相关文章

最新更新