Swift中private修饰的属性,我们有什么办法访问到?

237 阅读1分钟

有这么一段代码,我们怎么才能访问到AA里面的value呢,能不能修改它?

class AA {
    private var value: Int8 = 32
}

let a = AA()

尝试访问一下

private访问权限仅限于该类内部访问,外部访问会报错 image.png

可行的办法

我们可以使用Swift提供的反射,在运行时去访问它的私有属性。 查看了一下Mirror的API,没有提供修改的方法。但如果你的私有属性是一个类,这个属性类的公开属性还是可以修改的

image.png

资料

www.swiftwithvincent.com/newsletter/…