Ich habe die folgende Zeile:rasche NSData Initialisierung Handhabung nicht
let jsonResults = NSData(contentsOfURL: Fetcher.URLforLicenseInfo())
Dies kompiliert und führt in Ordnung, aber wenn die Initialisierung von NSData versagt ich eine Ausnahme später im Code. Ich habe versucht, eine weitere Zeile hinzufügen:
if jsonResults != nil { ///blah, blah...
aber dann der Compiler beschwert sich "Cannot invoke '!=' with an argument list type '(NSData, NilLiteralConvertible)"
Sollte nicht der Compiler NSData initialiser Rückgabetyp als optionales erkennen?
Wenn die erste Zeile zu 'geändert wird jsonResults lassen: NSData! = NSData (contentsOfURL: ... 'kann' überprüfen, wenn jsonResults! = Nil {... 'und es funktioniert gut, wenn NSData() fehlschlägt. Warum, wenn NSData nie null zurückgibt !? – user2041042
weil' NSData() 'ist ein Konstruktor, nicht Methode.Es gibt Referenz des aktuellen Objekts –
Ich kann den Unterschied zwischen Methode und Konstruktor machen.In meinem früheren Kommentar, wenn JsonResults == Nil bedeutet es NSData() hat Nil zurückgegeben ... – user2041042