Операция не может быть завершена. (Ошибка NSURLErrorDomain -999.) [Дубликат]

Интерфейс подобен контракту, в котором вы хотите, чтобы ваш класс реализации реализовал методы, написанные в контракте (интерфейс). Поскольку Java не предоставляет множественное наследование, программирование для интерфейса является хорошим способом достижения цели множественного наследования. Если у вас есть класс A, который уже расширяет какой-либо другой класс B, но вы хотите, чтобы класс A также следовал определенным рекомендациям или реализовывал определенный контракт, тогда вы можете сделать это путем программирования стратегии интерфейса.

51
задан hjpotter92 6 October 2015 в 08:02
поделиться

3 ответа

Ошибка зарегистрирована в Mac Developer Library (iOS docs)

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

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

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

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

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

108
ответ дан hjpotter92 21 August 2018 в 17:23
поделиться
  • 1
    Может означать (error.code == NSURLErrorCancelled == -999), а error.domain (NSString) - NSURLErrorDomain. Вы получаете это, когда отменяете задачу, используя отмену – Ryan Heitner 28 December 2014 в 12:25
  • 2
    Привет hjpotter92, Мое приложение падает, когда эта ошибка возникла какая-либо помощь? – Gopal Devra 15 June 2015 в 05:12
  • 3
    Хотел добавить, что вы получаете ту же ошибку (-999), когда у SSL-сертификата сервера есть проблемы (т. Е. Он истек или недействителен) – arrteme 11 April 2017 в 14:52
  • 4
    @arrteme Это не должно. Код -12xx для тех: developer.apple.com/reference/foundation/… – hjpotter92 11 April 2017 в 15:01
  • 5
    @ hjpotter92 Я мог бы ссылаться на этот ответ stackoverflow.com/a/40100179/3065769 ; Я получал -999 Отменил ошибку в консоли, но выполнил тот же запрос POST через curl. Я получил сообщение о том, что на сервере возникли проблемы с SSL; У меня нет большого опыта в этой области, хотя – arrteme 11 April 2017 в 15:47

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

    }
1
ответ дан luiyezheng 21 August 2018 в 17:23
поделиться

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.

10
ответ дан thanhbinh84 21 August 2018 в 17:23
поделиться
  • 1
    Я не видел этого в 10, но после обновления до 11 я это вижу. Поэтому трудно сказать, является ли это ложным положительным или другим. Я также не нашел ничего плохого в поведении приложения. – Micah Montoya 20 October 2017 в 14:12