如何在 Swift 中通过两个差异 class 调用 class 中的同一个变量?
How to call a same variable in class by two difference class in Swift?
我是 Swift 的新手。
我在 CouchBase.swift
中保存了一些变量和函数,并且有两个 swift 将调用 CouchBase.swift
.
中的函数和变量
ViewController.swift
在CouchBase.swift
中设置uuid,改为DeviceInfo.swift
。但是当我在 DeviceInfo.swift
中调用 getuuid
时,它 return 空值;
在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 class 中使用同一个变量?
为什么我在DeviceInfo.swift
中调用cbase.getUserUUID()
时值为空?
您需要将 ViewController class 的 cbase
属性 传递给 Deviceinfo
class.
为此,您可以使用 prepareForSegue
方法,在第一个视图控制器中实现以下方法 class:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!)
{
let destinationVC = segue.destinationViewController as Deviceinfo
destinationVC.cbase = self.cbase
}
注:假设cbase
是public属性中的Deviceinfo
class也是。
我是 Swift 的新手。
我在 CouchBase.swift
中保存了一些变量和函数,并且有两个 swift 将调用 CouchBase.swift
.
ViewController.swift
在CouchBase.swift
中设置uuid,改为DeviceInfo.swift
。但是当我在 DeviceInfo.swift
中调用 getuuid
时,它 return 空值;
在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 class 中使用同一个变量?
为什么我在DeviceInfo.swift
中调用cbase.getUserUUID()
时值为空?
您需要将 ViewController class 的 cbase
属性 传递给 Deviceinfo
class.
为此,您可以使用 prepareForSegue
方法,在第一个视图控制器中实现以下方法 class:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!)
{
let destinationVC = segue.destinationViewController as Deviceinfo
destinationVC.cbase = self.cbase
}
注:假设cbase
是public属性中的Deviceinfo
class也是。