我有以下行:迅速處理NSData的初始化失敗
let jsonResults = NSData(contentsOfURL: Fetcher.URLforLicenseInfo())
這編譯和執行正常,但如果的NSData的初始化失敗,我得到一個異常後面的代碼。我嘗試添加另一行:
if jsonResults != nil { ///blah, blah...
但隨後的編譯器抱怨"Cannot invoke '!=' with an argument list type '(NSData, NilLiteralConvertible)"
不應該編譯器識別的NSData初始化器返回類型爲可選?
如果第一行改爲'讓jsonResults:NSData的! = NSData(contentsOfURL:...''可以檢查'如果jsonResults!= nil {...',並且它在NSData()失敗時工作正常,爲什麼NSData永遠不會返回nil!? – user2041042 2014-09-22 08:29:32
因爲NSData()是構造函數,不是方法,它返回當前對象的引用 – 2014-09-22 09:05:21
我可以在方法和構造函數之間做出區別,在我之前的註釋中,當jsonResults == nil時,它表示NSData()返回了nil ... – user2041042 2014-09-22 11:23:44