我是 Swift 的新手。
我在 CouchBase.swift
中保存了一些变量和函数,并且有两个 swift 将调用 CouchBase.swift
中的函数和变量。
ViewController.swift
在CouchBase.swift
中设置uuid 并更改为DeviceInfo.swift
。但是当我在 DeviceInfo.swift
中调用 getuuid
时,它返回空值;
在 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 类中使用相同的变量?
为什么在 DeviceInfo.swift
中调用 cbase.getUserUUID()
时值为空?
最佳答案
您需要将 ViewController 类的 cbase
属性传递给 Deviceinfo
类。
为此,您可以使用prepareForSegue
方法,在第一个 View Controller 类中实现以下方法:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!)
{
let destinationVC = segue.destinationViewController as Deviceinfo
destinationVC.cbase = self.cbase
}
注意:假设 cbase
也是 Deviceinfo
类中的公共(public)属性。
关于ios - 如何通过 Swift 中的两个不同类调用类中的同一个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27857327/