Подтвердить что ты не робот

Создайте новый NSError в Swift (чтобы отклонить обещание от PromiseKit)

Я пытаюсь использовать PromiseKit, и я застрял в отказе от обещания.

Отклонение обещания выполняется либо путем вызова функции reject с аргументом NSError как аргумент.

func getAPromise() -> Promise<Bool> {
    return Promise<Bool> { fulfiller, rejecter in
        let diceRoll = Int(arc4random_uniform(7))
        if diceRoll < 4 {
             // rejecter(?) how do I call this rejection correctly ?
        } else {
             fulfiller(true)
        }
}

Просто получение экземпляра NSError мне поможет.

ИЗМЕНИТЬ

NSError("somedomain", 123, [])

жалуется на "Дополнительный аргумент в вызове".

4b9b3361

Ответ 1

В этом коде есть две проблемы:

NSError("somedomain", 123, [])
  • Все параметры инициализации NSError имеют внешнее имя.
  • Пустое Dictionary литерал [:], а не []. [] для Array

Try:

NSError(domain: "somedomain", code: 123, userInfo: [:])

Или, если у вас нет userInfo, вы можете передать nil для него.

NSError(domain: "somedomain", code: 123, userInfo: nil)