如何在 Swift 中通过两个差异 class 调用 class 中的同一个变量?

How to call a same variable in class by two difference class in Swift?

我是 Swift 的新手。 我在 CouchBase.swift 中保存了一些变量和函数,并且有两个 swift 将调用 CouchBase.swift.

中的函数和变量

ViewController.swiftCouchBase.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属性中的Deviceinfoclass也是。