Dans le projet Tests, j'ai des extensions avec certaines fonctions d'aide aux tests. Comme ceci :
extension Employee {
static func mockDict() -> Dictionary! {
return ["ID": arc4random() % 1000,
"FirstName": "Prénom de l'employé",
...]
}
}
(J'ai supprimé le code inutile). J'ai un problème d'accès à l'ID de ce dictionnaire pour une raison encore inconnue. J'ai un SIGABRT 6 lors du cast
employeeDict["ID"] as! Int
La console du débogueur Xcode n'aime pas non plus cet entier particulier :
Les chaînes fonctionnent bien. Avez-vous rencontré un tel problème ? Des idées ?
MODIFIER : Au cas où quelqu'un rencontrerait également ce problème. LE CASTING DE UInt32/Int32 VERS Int ÉCHEC EST INTENTIONNEL. Même si l'objet a été casté en Any
ou Anyobject
entre-temps. Même si
@available(*, message: "La conversion de UInt32 en Int réussira toujours.")
public init?(exactement valeur: UInt32)
dans la déclaration de Int
public struct Int : EntierSigné, Comparable, Equatable {
...
}
et
public struct Int32 : EntierSigné, Comparable, Equatable {
...
}
MODIFIER 2 pour ceux qui pourraient rencontrer ce comportement dans la sérialisation JSON. Oui, la sérialisation échoue avec l'erreur NSInvalidArgumentException
Type invalide dans l'écriture JSON (_SwiftValue)
si on lui demande de sérialiser UInt32, Int64 ou toute autre instance de protocole Integer autre que Int