gpt4 book ai didi

swift - 在 Swift 中按类隐藏属性 setter

转载 作者:行者123 更新时间:2023-11-30 10:42:30 30 4
gpt4 key购买 nike

我想在 Swift 模型对象上隐藏一些属性 setter 和初始化器。这些是服务器提供的引用数据,在任何情况下都不应由应用程序创建或修改。这在 Swift 中很简单。

但是,我的项目(一个单独的目标)中有一个应用程序需要打破此规则。它是我用来批量填充数据的工具,因此当然需要能够初始化新的模型对象并设置它们的属性。

为了实现这一目标,我有哪些选择?我宁愿不使用全新的项目,因为这意味着大量的代码重复。是否有某种语言级方法可以使这种可变性对一个应用程序隐藏但对另一个应用程序可用?

最佳答案

如果您使用 let 关键字声明属性。然后只能在类型的 init 中设置它。

您还可以声明一个私有(private) setter ,以使该属性对类型的调用者只读,但在类型内部读/写

struct Foo {
private(set) var bar: Bool = true

func toggle() {
bar.toggle()
}
}

var foo = Foo()

let barState = foo.bar // This works
foo.toggle() // This works too
foo.bar.toggle() // This will make a compile time error

关于swift - 在 Swift 中按类隐藏属性 setter ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56485686/

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