gpt4 book ai didi

ios - Swift:是否可以根据正在设置的另一个属性来要求属性?

转载 作者:搜寻专家 更新时间:2023-10-31 22:25:54 24 4
gpt4 key购买 nike

我想重新使用单个 View Controller ,但稍微改变了用途,我想知道是否有结构化的方法来要求根据另一个属性设置某些属性。

例如,假设 viewcontroller 具有以下属性
- var displayMode: DisplayMode//见下文
- 变量 ID:整数
- 变量描述:字符串
- 变量名称:字符串

如果我们处于快速查看模式,那么我希望设置 ID 和描述值。否则,如果我们处于 defaultView 模式,我希望设置 Name 属性。

enum DisplayMode {
case quickView
case defaultView
}

显然,我可以只设置它们并期望它们被设置,但我想知道是否有类似 Swift 的结构化方式来强制执行此操作,例如将属性嵌套在 DisplayMode 类型中?

最佳答案

考虑使用 associated values对于你的 enum 案例,像这样:

enum DisplayMode {
case quickview(id: Int, description: String)
case defaultview(name: String)
}

这会强制用户在声明 DisplayMode 变量时提供有效的关联值:

var mode = DisplayMode.quickView(id: 11, description: "Prosecco")

要取回关联值,您可以将它们绑定(bind)到 switch 中的变量:

switch mode {
case let .quickView(id, description):
// do something with id and description
case let .defaultview(name):
// do something with name
}

通过使用关联值,您不必为 iddescriptionname .

关于ios - Swift:是否可以根据正在设置的另一个属性来要求属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47667599/

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