swift - url.appendPathComponent 产生错误不能在不可变值 : function call returns 上使用变异成员

标签 swift url

在 Swift 中,为什么这段代码会产生错误:

URL(string:"string a")!.appendPathComponent("string b")

错误:“不能在不可变值上使用可变成员:函数调用返回”

当这段代码有效时:

var url: URL=URL(string: "string a")! url.appendPathComponent(“string b”)

最佳答案

是的,这当然会发生。因为您正在尝试更改不可变的值,这是不可能的。

你可以看到 URL() 是 struct(value) 类型,它的初始化器 URL(string: ) 返回给你不可变的副本。

你说下面的代码是有效的。

var url: URL=URL(string: "string a")!
url.appendPathComponent(“string b")

因为,您正在 url 变量中创建该 URL 结构的可变副本。您还可以看到 appendPathComponent 是变异函数。这样您就可以对该可变副本应用修改。

关于swift - url.appendPathComponent 产生错误不能在不可变值 : function call returns 上使用变异成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45409423/

相关文章:

arrays - 在 Swift 中确定多维数组的大小

swift - () -> () 在 swift 中意味着什么?

ios - 从 NSObject 派生时,Swift iOS 内存泄漏指示 XCode8

ios - "Swift is not supported for static libraries"测试 cocoapod 时

swift - 使用静态变量创建通用 Swift 实例

url - 添加一个www。子域到 Github 页面

java - 将 http url 传递到 SAXParser XML 中

java - url.openStream() 不适用于某些网页

javascript - 从查询参数中获取所有范围变量

iphone - 在 iOS 中仅从 URL 中获取一些行