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

AsT*_*TeR 20 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)
        }
}
Run Code Online (Sandbox Code Playgroud)

简单地获取NSError的实例会对我有所帮助.

编辑:

NSError("somedomain", 123, [])
Run Code Online (Sandbox Code Playgroud)

抱怨"额外的争论".

rin*_*aro 51

您在此代码中遇到两个问题:

NSError("somedomain", 123, [])
Run Code Online (Sandbox Code Playgroud)
  • 所有初始化参数NSError都有外部名称.
  • Dictionary文字[:]不是[].[]是为了Array

尝试:

NSError(domain: "somedomain", code: 123, userInfo: [:])
Run Code Online (Sandbox Code Playgroud)

或者,如果你没有userInfo,你可能想要传递nil它.

NSError(domain: "somedomain", code: 123, userInfo: nil)
Run Code Online (Sandbox Code Playgroud)