2016-09-17 24 views
17

Tôi làm cách nào để khai báo URL nhanh chóng 3?Khai báo URL trong Swift 3

Đây là mã cố gắng của tôi:

var messageURL: URL = URL() 

HOẶC

var messageURL: Foundation.URL = URL() 

Đây là lỗi: Không thể gọi initializer cho loại 'URL' không có đối số

Dưới đây là một số tài liệu (Swift 3.0) từ Apple mà tôi đang gặp sự cố khi triển khai:

Properties whose name conflicts with Foundation types after removing their NS prefix will lead to module-qualified type names. For example, if there is a var URL: NSURL, it will be rewritten as var URL: Foundation.URL

Trả lời

56

Swift 3 có URL (một struct) và NSURL (một số class, được kế thừa từ ObjC). Tình huống giống như StringNSString. Bạn có 2 lựa chọn để tiếp cận này:

1: Nếu bạn biết địa chỉ URL tại thời điểm kê khai:

let url = URL(string: "https://www.apple.com") 

2: Nếu bạn chỉ có thể tìm hiểu về các URL sau:

var url: URL! 

// You can check if the variable is initialized by checking it against nil: 
//  if url == nil { /* not initialized */ } 

// When you are ready to assign it a value: 
url = URL(string: "https://www.apple.com") 
-1

Tôi đã gặp vấn đề tương tự khi di chuyển sang Swift 3 nhưng, sau khi bị kẹt, tôi nhận ra rằng tôi đã thực hiện một lớp trước khi di chuyển được gọi là URL hiện đang can thiệp vào cấu trúc và tạo ra các vấn đề về cấu trúc của URL của Quỹ.

-1

Trong URL Swift 3 có nhiều trình khởi tạo nhưng tất cả đều lấy một đối số, chuỗi hoặc dữ liệu.