Facebook对话框失败并显示错误:无法完成操作.(NSURLErrorDomain错误-999.)

Jul*_*rio 3 iphone facebook objective-c ios

我正在使用facebook api for ios,我正在使用facebook对话框发布.

基本的想法是,我有一个发布的按钮调用方法,并询问您是否立即登录发布或执行登录然后发布.当第二种情况发生时,我无法在登录到Facebook后立即发布,所以我必须点击按钮并再次调用该方法,以便我可以发布.

facebook发给我的错误说: 操作无法完成.(NSURLErrorDomain错误-999.)

我已经在这里阅读了它,它说:

根据"Foundation Constants Reference",错误代码-999表示"NSURLErrorCancelled".

描述:

取消异步加载时返回.Web Kit框架委托在对加载资源执行取消操作时将收到此错误.请注意,如果取消下载,NSURLConnection或NSURLDownload委托将不会收到此错误.适用于iOS 2.0及更高版本.在NSURLError.h中声明.

问题是为什么facebook会发送给我这个,我该如何解决?

如果需要更多代码,我可以把它.

提前致谢.

Bri*_*ein 7

我解决这个问题的方法是我改变FBDialog.m以忽略错误代码-999

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
// 102 == WebKitErrorFrameLoadInterruptedByPolicyChange
NSLog(@"FBDialog webView didFailLoadWithError:%@ %d",error.domain,error.code);
if ([error.domain isEqualToString:@"NSURLErrorDomain"] && error.code == -999)
    return;

if ([error.domain isEqualToString:@"WebKitErrorDomain"] && error.code == 102)
    return;

[self dismissWithError:error animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

有趣的是FBLoginDialog已经忽略了错误代码102和-999而FBDialog只忽略了102.请亲自看看:https://github.com/facebook/facebook-ios-sdk/blob/master/src/FBLoginDialog. M#L85

我不知道这是否是最好的解决方案,但我对此感到有点自信,因为另一篇Facebook sdk代码已经忽略了同样的错误.