1. swift中Array的值传递问题
Array是个结构体,就是值类型,值类型传递传递的是值,修改传递过去的值不会改变原来的值
当Array中的元素是值类型时候, 那么就是值传递

当Array中的元素是引用类型时,那么传递方式就是引用传递
测试代码如下:
protocol TestViewProtocol: NSObjectProtocol {
func updateModel()
}
class TestView: UIView {
weak var delegate: TestViewProtocol?
var dataArray: [TestModel] = [TestModel]()
override init(frame: CGRect) {
super.init(frame: frame)
addSubview(testButton)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented"

这篇博客探讨了Swift中Array作为值类型在传递时的行为。当Array包含值类型元素时,传递是值拷贝,修改不会影响原始数据;而当Array包含引用类型元素时,尽管Array本身按值传递,但内部对象按引用传递,导致修改会影响到原始数据。通过示例代码展示了这种现象,并与Objective-C进行了对比。
最低0.47元/天 解锁文章
9345

被折叠的 条评论
为什么被折叠?



