Код ошибки NSURLErrorDomain -999 в iOS

Я пытался использовать Facebook API Corona SDK, чтобы опубликовать счет в игре, которую я разрабатываю на facebook. Однако у меня с этим проблемы. В первый раз, когда я пытаюсь опубликовать в facebook, я получаю эту ошибку после входа в систему и аутентификации пользователя:

код ошибки NSURLErrorDomain -999

тогда он не будет публиковаться на facebook. Каковы возможные причины этой ошибки и как я могу решить это? Я пытался искать в интернете, но не смог найти. информация о нем. Спасибо заранее.

кстати, я не использую webview в своем приложении. Только API виджета и прослушиватель show_dialog в моем классе Facebook.

3 ответов


ошибка была задокументирована на Библиотека Разработчиков Mac(iOS docs)

соответствующий сегмент из документации будет:

URL загрузка системных кодов ошибок

эти значения возвращаются как свойство кода ошибки NSError объект с доменом "NSURLErrorDomain".

enum
{
   NSURLErrorUnknown = -1,
   NSURLErrorCancelled = -999,
   NSURLErrorBadURL = -1000,
   NSURLErrorTimedOut = -1001,

Как видите; -999 причинена ErrorCancelled. Это значит:другой запрос делается до завершения предыдущего запроса.


hjpotter92 абсолютно прав, я просто хочу предоставить решение для моего случая. Надеюсь, это полезно и для вас. Вот мое положение:--2-->

на странице Вход > нажмите вход > всплывающее диалоговое окно загрузки > вход в службу > закрыть диалоговое окно > нажмите другой экран > вызов другой службы -- > вызвать ошибку -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.


Я не использовал Facebook API Corona SDK, но я столкнулся с этой проблемой при использовании Alamofire,secondRequest всегда отменять в исполнении с ошибкой -999, согласно сообщениям, которые я нашел в интернете, причина в том, что session недвижимость 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
    }

    }