为什么我在 Swift 中设置时 Enum 的值没有改变?
Why the value of Enum didn't change when I set in Swift?
我尝试将 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
,为什么我在 ViewController.swift
中调用 Couchbase().setReplyStatus(CouchbaseEnum.ReplyStatus.LOGIN_SUCCESS);
时值没有改变?
提前致谢。
STATUS
是classCouchbase
的实例变量。
每次调用 Couchbase()
时,都会创建 class 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");
}
我尝试将 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
,为什么我在 ViewController.swift
中调用 Couchbase().setReplyStatus(CouchbaseEnum.ReplyStatus.LOGIN_SUCCESS);
时值没有改变?
提前致谢。
STATUS
是classCouchbase
的实例变量。
每次调用 Couchbase()
时,都会创建 class 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");
}