我一直在尝试使用电晕SDK的Facebook API发布的游戏,我在Facebook上开发了比分。 不过,我与它有一个问题。 在我第一次尝试发布到Facebook上,我得到的登录和用户身份验证后此错误:
NSURLErrorDomain错误代码-999
然后,它不会在Facebook上发布。 什么是这个错误的可能原因,我如何解决呢? 我试着在网上搜索,但无法找到关于它的信息。 提前致谢。
顺便说一句,我没有使用我的应用程序的WebView。 就在小部件的API和我的Facebook类show_dialog听众。
该错误已被记录在Mac开发者库 (iOS版文档)
从文档有关部分将是:
网址加载系统错误代码
这些值被返回为与域“NSURLErrorDomain”一个NSError对象的错误代码属性。
enum { NSURLErrorUnknown = -1, NSURLErrorCancelled = -999, NSURLErrorBadURL = -1000, NSURLErrorTimedOut = -1001,
如你看到的; -999
是造成ErrorCancelled
。 这意味着: 在完成前一个请求之前,另一个请求。
hjpotter92是绝对正确的,我只是想为我的情况的解决方案。 希望这是对你有用。 这里是我的情况:
在登录页面>记者登录>弹出对话框加载>通话记录服务>关闭对话框>推另一个屏幕>调用其他服务 - >因错误-999
为了解决这个问题,我把解雇对话,推动新的屏幕之间的延迟:
[indicatorAlert dismissWithClickedButtonIndex:0 animated:YES];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.01 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
[self performSegueWithIdentifier:@"HomeSegue" sender:nil];
});
奇怪的是,这个问题发生在iOS 7只。
只是想在这里补充,接收时-999 "cancelled"
的问题通常是一两件事情:
- 你又执行完全相同的请求。
- 你保持一个弱引用您的
manager
对象被提前释放。 (创建强引用)
使用Alamofire时,我没有使用电晕SDK的Facebook的API,但我遇到了这个问题, secondRequest
随时取消与错误-999执行,根据我互联网上找到的职位,原因是session
属性deinit
完成之前因为异步工作超出范围,我终于解决了这个问题deinit
会话属性手动所以编译器不会在错误的位置DEINIT它:
class SessionManager {
var session:SessionManager?
init() {
self.session = SessionManager(configuration:URLSessionConfiguration.ephemeral)
}
private func firstRequest() {
guard let session = self.session else {return}
session.request(request_url).responseData {response in
if let data=response.data {
self.secondRequest()
}
}
private func secondRequest() {
guard let session = self.session else {return}
session.request(request_url).responseData {response in
if let data=response.data {
self.secondRequest()
}
//session will no longer be needed, deinit it
self.session = nil
}
}