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会发送给我这个,我该如何解决?
如果需要更多代码,我可以把它.
提前致谢.
我解决这个问题的方法是我改变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代码已经忽略了同样的错误.