我有以下行:迅速处理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