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

时间:2015-01-09 09:24:18

标签: ios swift

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

ViewController.swiftCouchBase.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时,为什么该值为空?

1 个答案:

答案 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也是公共属性。