我是Swift的新手。
我在CouchBase.swift
中保存了一些变量和函数,有两个swift会调用CouchBase.swift
中的函数和变量。
ViewController.swift
在CouchBase.swift
中设置 uuid 并更改为DeviceInfo.swift
。但是当我在getuuid
中调用DeviceInfo.swift
时,它会返回空值;
在CouchBase.swift
class Couchbase {
ar userPassword = "";
var userUUID = "";
func setuuid(uuid: String){
self.userUUID = uuid
}
func getUserUUID() -> NSString{
return userUUID;
}
}
在ViewController.swift
var cbase = Couchbase()
cbase.setuuid("aaa")
self.performSegueWithIdentifier("DeviceInfo", sender: self) //change to DeviceInfo.swift
在DeviceInfo.swift
import Foundation
class Deviceinfo: ViewController {
override func viewDidLoad() {
println("cbase.getUserUUID() = \(cbase.getUserUUID())")
}
}
日志显示cbase.getUserUUID() =
,如何在两个不同的swift类中使用相同的变量?
当我在cbase.getUserUUID()
中呼叫DeviceInfo.swift
时,为什么该值为空?
答案 0 :(得分:1)
您需要将ViewController类的cbase
属性传递给Deviceinfo
类。
为此您可以使用prepareForSegue
方法,在第一个视图控制器类中实现以下方法:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!)
{
let destinationVC = segue.destinationViewController as Deviceinfo
destinationVC.cbase = self.cbase
}
注意:假设cbase
类中的Deviceinfo
也是公共属性。