S'il vous plaît ne marquez pas la question répétitive.SecIdentity + Force Cast Violation: les lancers de force doivent être évités. (force_cast)
Salut à tous,
que je fais NSURLAuthenticationMethodClientCertificate où je suis en utilisant le code suivant. Dans quel code est bon si je n'utilise pas swiftlint. Mais quand j'utilise swiftlint, je reçois cette erreur et je n'arrive pas à résoudre ce problème. J'ai beaucoup essayé, aidez-moi s'il vous plaît. Poster le code ci-dessous.
var items: CFArray?
//let PKCS12Data = DataSourceManager.sharedInstance.serverPolicyManager?.PKCS12Data
securityError = SecPKCS12Import(certData, options, &items)
if securityError == errSecSuccess {
let certItems: CFArray = items as CFArray!
let certItemsArray: Array = certItems as Array
let dict: AnyObject? = certItemsArray.first
if let certEntry: Dictionary = dict as? Dictionary<String, AnyObject> {
// grab the identity
let identityPointer = certEntry["identity"]
let secIdentityRef = identityPointer as! SecIdentity
print("\(String(describing: identityPointer)) :::: \(secIdentityRef)")
// grab the trust
let trustPointer: AnyObject? = certEntry["trust"]
let trustRef: SecTrust? = trustPointer as! SecTrust
print("\(String(describing: trustPointer)) :::: \(trustRef)")
// grab the cert
let chainPointer: AnyObject? = certEntry["chain"]
identityAndTrust = IdentityAndTrust(identityRef: secIdentityRef, trust: trustRef!, certArray: chainPointer!)
}
}
Je reçois une violation forcée dans les lignes ci-dessous.
let secIdentityRef = identityPointer as! SecIdentity
let trustRef: SecTrust? = trustPointer as! SecTrust
J'ai essayé de cette façon avec garde dans ce cas " Downcast conditionnel au type CoreFoundation 'SecIdentity' réussira toujours "L'erreur apparaît. J'ai essayé de plusieurs façons, mais ma compréhension est incapable de taper les objets de fonderie Cast. –
Pour être honnête, je ne savais pas qu'il s'agissait d'objets CoreFoundation. Fait quelques recherches et mis à jour la réponse! – swasta
pourriez-vous s'il vous plaît mettre à jour réponse si vous savez comment résoudre ce –