在Swift中创建一个新的NSError(拒绝来自PromiseKit的Promise)

时间:2014-12-12 12:38:54

标签: swift promisekit

我一直在尝试使用PromiseKit,而且我一直坚持拒绝承诺。

通过调用带有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, [])

抱怨&#34;呼叫中的额外参数&#34;。

1 个答案:

答案 0 :(得分:51)

此代码中存在两个问题:

NSError("somedomain", 123, [])
  • NSError的所有初始化参数都有external name
  • Dictionary字面值为[:],而不是[][]适用于Array

尝试:

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

或者,如果您没有userInfo,则可能需要传递nil

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