Swift 4 将字符串更改为 URL

标签 swift string url

<分区>

我是 swift 的新手,但我已经尝试了所有方法,但无法让它发挥作用。

var itemValue: String!
var itemURL: URL!

override func viewDidLoad() {
    super.viewDidLoad()

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

itemURL 未获取值,即使我已验证 itemValue 字符串设置正确(在之前的 vc 中,为 segue 做准备)。

最佳答案

当你编写 guard let itemURL = URL(string: itemValue) 时,你创建了一个名为 itemURL 的新本地常量,它与 无关具有相同名称的全局变量。而且,这个新的局部常量与全局变量的类型不同。全局变量是一个隐式解包的可选,所以这是一个可选的,但局部常量不是一个可选的。

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

关于Swift 4 将字符串更改为 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51682123/

相关文章:

swift - 为什么我的 endUpdates 抛出错误(当它在同一个函数中工作时)

string - 没有相邻重复序列的最长 3 个字符的字符串?

python - 拆分为 n 个字符串时返回字符串的所有可能组合

java - 是否有正确的方法来构建 URL?

ios - ViewDidLoad 中 UITextField 的圆角仅影响左角

ios - Swift 中的折线叠加

ios - swift 真实图像高度

c# - 尝试删除字符串的最后一个字符时出错

java - 在 java 中从 mega.co.nz 下载文件

php - 使用 PHP 下载文件并将其保存在本地