2017-05-25 3 views
-2

ma question n'est pas en double car je les ai déjà lus.erreur irrécupérable: trouvé de manière inattendue nil tout en déballant une valeur facultative - swift 3

mon code:

var str_images = "http://kashanmap.ir/images/apk_images/off/33/Cta_off _1_.jpg ,http://kashanmap.ir/images/apk_images/off/33/Cta_off _2_.jpg ,http://kashanmap.ir/images/apk_images/off/33/Cta_off-_4_.jpg" 

    for one_img in multi_img{ 
     print("one: \(one_img)") 
     var img = one_img 

     //self.imgs_slider.append(img) 
     let alamofireSource = AlamofireSource(urlString: img)! 
     images.append(alamofireSource) 
    } 

mon journal de la console:

one: http://kashanmap.ir/images/apk_images/off/33/Cta_off _1_.jpg 
fatal error: unexpectedly found nil while unwrapping an Optional value 
(lldb) 

enter image description here

j'ai changé cette ligne:

 var img = one_img 

à:

 var img = one_img? 

ou

 var img = one_img! 

mais Xcode montre un cycle rouge pour enlever ? ou !.

+0

D'où provient 'multi_img'? L'erreur se produit car il existe un caractère d'espace non échappé dans les chaînes qui interrompt la création de l'URL. Et ce n'est pas javascript, les noms de variables sont censés ressembler à 'oneImg' plutôt qu'à' one_img' – vadian

Répondre

2

Ce que vous devez changer est cette ligne:

let alamofireSource = AlamofireSource(urlString: img)! 

Voir la ! à la fin? Si AlamofireSource(urlString: img) est nul, il se bloque.

Pour résoudre ce problème, il suffit d'utiliser en option contraignante:

if let alamofireSource = AlamofireSource(urlString: img) { 
    images.append(alamofireSource) 
} 

Vos urls semblent être invalides aussi. Ils ne peuvent pas contenir d'espaces, donc pour corriger la racine du problème, vous devriez probablement changer les URL.