2014-12-12 31 views
19

Ho cercato di utilizzare PromiseKit e sono bloccato a rifiutare una promessa.Crea un nuovo NSError in Swift (per rifiutare una promessa da PromiseKit)

Il rifiuto di promessa viene eseguito chiamando una funzione di rifiuto con un errore NSE come argomento.

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) 
     } 
} 

Ottenere semplicemente un'istanza di NSError mi aiuterebbe.

EDIT:

NSError("somedomain", 123, []) 

lamenta con "argomento extra in chiamata".

+0

Quando tutto il resto fallisce [leggere le istruzioni] (https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSError_Class/). –

+0

Oh grazie davvero utile e produttivo! Grazie anche per il voto negativo ... Qualsiasi risposta invece di indicare il documento che ho appena letto? Nel caso ti stia chiedendo. Sì, chiamare il costruttore di NSError non funziona, ad es .: 'NSError (" somedomain ", 123, [])'. – AsTeR

+0

Ma non l'hai mai detto. Non hai descritto alcun errore (ancora non l'hai). –

risposta

50

avete due problemi in questo codice:

NSError("somedomain", 123, []) 
  • Tutti i parametri di inizializzazione di NSError hanno external name.
  • vuoto Dictionary vuoto [:], non []. [] è per Array

Prova:

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

Oppure, se non si dispone di alcun userInfo, si potrebbe desiderare di passare nil per esso.

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

Mi piacerebbe avere due volte di nuovo! Grazie! – AsTeR

+0

Sarebbe utile avere incluso userinfo –

Problemi correlati