Tôi có dòng sau:nhanh chóng xử lý NSData khởi động thất bại
let jsonResults = NSData(contentsOfURL: Fetcher.URLforLicenseInfo())
này biên soạn và thực hiện tốt nhưng nếu khởi động của NSData thất bại tôi nhận được một ngoại lệ sau trong các mã. Tôi đã cố gắng thêm một dòng:
if jsonResults != nil { ///blah, blah...
nhưng sau đó trình biên dịch phàn nàn "Cannot invoke '!=' with an argument list type '(NSData, NilLiteralConvertible)"
nên không trình biên dịch nhận NSData initialiser kiểu trả về như một tùy chọn?
Nếu dòng đầu tiên được thay đổi cho 'hãy jsonResults: NSData! = NSData (contentsOfURL: ... 'có thể kiểm tra' if jsonResults! = Nil {... 'và nó hoạt động tốt khi NSData() thất bại. Tại sao nếu NSData không trả về nil !? – user2041042
vì' NSData() 'là hàm tạo, Nó trả về tham chiếu của đối tượng hiện tại –
Tôi có thể tạo sự khác biệt giữa phương thức và hàm tạo.Trong chú thích trước đây của tôi khi jsonResults == nil nó có nghĩa là NSData() đã trả về nil ... – user2041042