gpt4 book ai didi

swift - NSData 方法 mutableCopy() 不能像 objC [... mutableCopy] 那样工作?

转载 作者:行者123 更新时间:2023-11-28 12:12:09 25 4
gpt4 key购买 nike

swift 4:

let d1 = NSData(base64Encoded: "wAEP/w==")!
let d2 = d1.mutableCopy() as! NSMutableData

d1 和 d2 指向内存中的相同地址,但是我希望 mutableCopy() 将作为 objC [d1 mutableCopy] 工作 - 例如。创建 NSMutableData 对象的新实例。

我真的做错了什么,还是 Swift 的工作方式不同?

最佳答案

不,d1d2 没有指向同一内存地址。它正在创建一个不同的实例。

您在 playground 右侧看到的不是对象的地址,而是您拥有的 Data 的表示。要证明它正在创建一个不同的实例,只需尝试以下代码:

let d1 = NSData(base64Encoded: "wAEP/w==")!
let d2 = d1.mutableCopy() as! NSMutableData
d2.append(Data(base64Encoded: "wAEP")!)
print(d1)
print(d2)

如果它们是同一个实例,d2 将打印与 d1 相同的内容

关于swift - NSData 方法 mutableCopy() 不能像 objC [... mutableCopy] 那样工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48103636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com