Si cette question a déjà été posée, veuillez m'en informer et nous supprimerons cette question. Cependant, je n'ai pas réussi à trouver quelqu'un répondant à cela.Comment voir quelle erreur spécifique se produit pendant la fonction d'écriture
J'utilise actuellement cette fonction: https://developer.apple.com/reference/foundation/outputstream/1410720-write
func write(_ buffer: UnsafePointer<UInt8>, maxLength len: Int) -> Int
à écrire à un flux. Il renvoie un entier et, selon la documentation, cet entier est utilisé pour déterminer si les données ont été envoyées avec succès ou non:
- Un nombre positif indique le nombre d'octets écrits.
- 0 indique qu'un flux de longueur fixe a atteint sa capacité.
- -1 signifie que l'opération a échoué; Plus d'informations sur l'erreur peuvent être obtenues avec streamError.
Je suis curieux de connaître le dernier. Dans mon code j'obtiens la valeur de cette erreur, qui est -1 dans mon cas. J'espère voir ce qui échoue spécifiquement. Mais comment puis-je obtenir un objet d'erreur d'un nombre entier?
Donc, fondamentalement, comment puis-je obtenir ceci: "plus d'informations sur l'erreur peuvent être obtenues avec streamError."
Merci.
EDIT:
Tout d'abord merci pour la réponse déjà. Cependant, j'ai fini par utiliser le code suivant:
for buffer in buffers {
let output = outputStream?.write((buffer.mData?.load(as: UnsafePointer<UInt8>.self))!, maxLength: Int(buffer.mDataByteSize))
if output == -1 {
let error = outputStream?.streamError
print("\(#file) > \(#function) > Error: \(error?.localizedDescription)")
}
}
Et il est impression que l'erreur est nulle.
Quel type de flux est 'outputStream'? Avez-vous 'ouvert()' le flux avant d'y écrire? –
@MartinR Oui, j'ai oublié d'ouvrir le flux. Avez-vous déjà vu l'erreur "L'opération n'a pas pu être complétée, mauvaise adresse"? – Logan
Apparemment 'streamError' n'est pas défini si le flux n'a pas été ouvert. - Vous obtiendrez "mauvaise adresse" si le tampon ne contient pas une adresse valide. Exemple: 'let written = stream.write (UnsafePointer (bitPattern: 1) !, maxLength: 4)' –