2017-03-02 1 views
0

Je fais un simple appel de la AppDelegate:AppDelegate: de façon inattendue nulle en déballant une valeur facultative

let vc = ViewController() 
vc.myaction() 

l'action ouvre une URL dans un objet View Web (qui est chargé sur le remplacement de didload)

et c'est la fonction:

func myaction() { 
    let url = URL(string: "http://192.168.1.5/doit") 
    let urlreq = URLRequest(url: url!) 
    mywebview.loadRequest(urlreq) 
} 

et ceci est l'erreur:

fatal error: unexpectedly found nil while unwrapping an Optional value 
+1

Quelle ligne est de vous donner l'erreur. Je parie que c'est * laisser urlreq ... * Pourquoi parce que c'est la seule ligne où vous essayez de déballer quelque chose. Je parie aussi que si vous mettez un point d'arrêt sur cette ligne et vérifiez le contenu de * url *, vous le trouverez nul. (Bien sûr, à moins que vous n'ayez pas publié le code qui vous convient vraiment.) La question que vous devez vraiment poser - si je me trompe ici - est de savoir ce qui bloque votre requête HTTP. – dfd

+2

Avez-vous réglé le paramètre ATP dans votre Info.plist? Sinon, votre demande d'URL sera refusée parce qu'elle n'est pas https –

+0

Essayez d'ajouter des charges arbitraires à YES dans le dictionnaire de la sécurité du transport de l'application –

Répondre

0

trouvé nul est probablement pour mywebView car il ne s'initialisera que lorsque votre vue viewcontroller charger. Essayez avec le code suivant

func myaction() { 
    let mywebview = UIWebView() 
    let url = URL(string: "http://192.168.1.5/doit") 
    let urlreq = URLRequest(url: url!) 
    mywebview.loadRequest(urlreq) 
} 

ou vous pouvez initialiser le mywebview en dehors de myaction().

0

essayer NSURL:

func myaction() { 
    let url = NSURL(string: "http://192.168.1.5/doit") 
    let urlreq = NSURLRequest(url: url!) 
    mywebview.loadRequest(urlreq) 
}