我尝试将Enum值设置为变量,但是当我将其恢复时,变量的值没有改变。
代码如下:
CouchbaseEnum.swift 保存枚举值。
class CouchbaseEnum{
enum ReplyStatus{
case NONE
case LOGIN_SUCCESS
case LOGIN_ERROR
case LOGIN_RETRY
}
}
Couchbase.swift 定义set
和get
值的函数。
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
时价值没有变化?
提前致谢。
答案 0 :(得分:1)
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");
}