Swift 4将字符串更改为URL

时间:2018-08-04 03:17:26

标签: swift string url

我是新手,但是我已经尝试了所有方法,但无法正常工作。

var itemValue: String!
var itemURL: URL!

override func viewDidLoad() {
    super.viewDidLoad()

    print("itemValue is", itemValue!)
    guard let itemURL = URL(string: itemValue) else {
        return
    }

即使我已验证itemValue字符串设置正确(在以前的vc中,准备进行segue验证),itemURL也没有获取值。

2 个答案:

答案 0 :(得分:1)

在编写guard let itemURL = URL(string: itemValue)时,您将创建一个名为itemURL的新局部常量,它与具有相同名称的全局变量无关。此外,此新的局部常量与全局变量的类型不同。全局变量是一个隐式解包的可选变量,因此这是可选变量,而局部常量不是可选变量。

这就是为什么您说 itemURL没有获得值的原因:您希望名为itemURL的全局变量获得一个值,但只将一个值设置为具有相同名称的局部常量。这两个相似的标识符不会将其内容存储在相同的存储位置。

答案 1 :(得分:0)

let url : String = "url string here"
let urlStr : String = url.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
let convertedURL : URL = URL(string: urlStr)!
print(convertedURL)

尝试将您的URL字符串放入此代码中,希望它对您有用。