21

我一直在尝试使用 PromiseKit,但我一直在拒绝一个承诺。

Promise 拒绝是通过调用一个以 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, [])

抱怨“通话中的额外参数”。

4

1 回答 1

52

这段代码有两个问题:

NSError("somedomain", 123, [])
  • 的所有初始化参数NSError都有外部名称
  • Dictionary字面量是[:],不是[][]是为了Array

尝试:

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

或者,如果您没有任何userInfo,您可能想通过nil它。

NSError(domain: "somedomain", code: 123, userInfo: nil)
于 2014-12-12T14:31:02.130 回答