如何根据更改的属性在 Swift 中实现枚举和 switch 语句?
How to implement an enum and switch statement in Swift based on properties that change?
我正在尝试在我的代码中实现一些逻辑,以提供 "gate" 以根据应用内购买转到另一个 VC。
当用户点击添加按钮时,我想要 3 种可能的结果:
(1) 如果用户购买了 IAP,segue,
(2) 如果用户没有购买但 var x < 1(即他们之前没有添加),segue 这样他们就可以添加一次 属性
(3) 如果用户没有购买但是var x >= 1,不继续显示alert view
下面是我认为应该如何在 Swift 中设置它,但是我不确定如何将我想要的值添加到我的枚举中? Swift 什么最有效?
enum Access {
case Purchased //a bool true or false
case AddOne // not purchased but people < 1
case Locked //not purchased and people >= 1
}
switch Access {
case .Purchased: // segue
case .AddOne: // segue
case .Locked: // alertView
}
根据您的描述,可能不需要 enum
:
class MyViewController : UIViewController {
var purchased = false
var people = 0
@IBAction func handleButton (UIButton button) {
if purchased {
// segue
}
else if people < 1 {
// segue
}
else {
// alertView
}
}
}
或者,如果您已经从(购买的人)映射到枚举,则使用 enum
:
class MyViewController : UIViewController {
var access : Access = .Purchased
@IBAction func handleButton (UIButton button) {
switch access {
case .Purchased:
// segue
case .AddOne:
// segue
case .Locked:
// alert
}
}
}
我正在尝试在我的代码中实现一些逻辑,以提供 "gate" 以根据应用内购买转到另一个 VC。
当用户点击添加按钮时,我想要 3 种可能的结果:
(1) 如果用户购买了 IAP,segue, (2) 如果用户没有购买但 var x < 1(即他们之前没有添加),segue 这样他们就可以添加一次 属性 (3) 如果用户没有购买但是var x >= 1,不继续显示alert view
下面是我认为应该如何在 Swift 中设置它,但是我不确定如何将我想要的值添加到我的枚举中? Swift 什么最有效?
enum Access {
case Purchased //a bool true or false
case AddOne // not purchased but people < 1
case Locked //not purchased and people >= 1
}
switch Access {
case .Purchased: // segue
case .AddOne: // segue
case .Locked: // alertView
}
根据您的描述,可能不需要 enum
:
class MyViewController : UIViewController {
var purchased = false
var people = 0
@IBAction func handleButton (UIButton button) {
if purchased {
// segue
}
else if people < 1 {
// segue
}
else {
// alertView
}
}
}
或者,如果您已经从(购买的人)映射到枚举,则使用 enum
:
class MyViewController : UIViewController {
var access : Access = .Purchased
@IBAction func handleButton (UIButton button) {
switch access {
case .Purchased:
// segue
case .AddOne:
// segue
case .Locked:
// alert
}
}
}