gpt4 book ai didi

ios - 为什么我在 Swift 中设置时 Enum 的值没有改变?

转载 作者:行者123 更新时间:2023-11-29 02:23:21 25 4
gpt4 key购买 nike

我尝试将枚举值设置为一个变量,但是当我取回它时,变量的值并没有改变。

代码如下:

CouchbaseEnum.swift 保存枚举值。

class CouchbaseEnum{
enum ReplyStatus{
case NONE
case LOGIN_SUCCESS
case LOGIN_ERROR
case LOGIN_RETRY
}
}

Couchbase.swiftset 定义函数和 get值(value)。

class Couchbase {

var STATUS = CouchbaseEnum.ReplyStatus.NONE;

func setReplyStatus(status: CouchbaseEnum.ReplyStatus){
STATUS = status;
}

func getReplyStatus() -> (CouchbaseEnum.ReplyStatus){

return STATUS;
}
}

ViewControler.swift 调用该函数并将枚举值设置为变量。

@IBAction func login(sender: AnyObject) {

Couchbase().setReplyStatus(CouchbaseEnum.ReplyStatus.LOGIN_SUCCESS);

if(Couchbase().getReplyStatus() == CouchbaseEnum.ReplyStatus.LOGIN_SUCCESS){
println("login---LOGIN_SUCCESS");
}else if(Couchbase().getReplyStatus() == CouchbaseEnum.ReplyStatus.NONE){
println("login---NONE");
}
}

当我点击按钮时,它会调用setReplyStatus并发送CouchbaseEnum.ReplyStatus.LOGIN_SUCCESS .

但它总是显示login---NONE ,为什么当我调用 Couchbase().setReplyStatus(CouchbaseEnum.ReplyStatus.LOGIN_SUCCESS); 时值没有改变在ViewController.swift

提前致谢。

最佳答案

STATUS 是类 Couchbase 的实例变量。每次调用 Couchbase() 时,都会创建类 Couchbase 的新实例,每次创建新实例时,STATUS 都会获取设置为 CouchbaseEnum.ReplyStatus.NONE。而是使用像下面的代码这样的变量。

var cbase = Couchbase()
cbase.setReplyStatus(CouchbaseEnum.ReplyStatus.LOGIN_SUCCESS);

if(cbase.getReplyStatus() == CouchbaseEnum.ReplyStatus.LOGIN_SUCCESS){
println("login---LOGIN_SUCCESS");
}
else if(Couchbase().getReplyStatus() == CouchbaseEnum.ReplyStatus.NONE){
println("login---NONE");
}

关于ios - 为什么我在 Swift 中设置时 Enum 的值没有改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27853093/

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