ios - 如何通过 Swift 中的两个不同类调用类中的同一个变量?

标签 ios swift

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

ViewController.swiftCouchBase.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/

相关文章:

iOS - 当值可以为零时如何处理字符串连接?

ios - 带有 ObjC 静态库的私有(private) Swift Pod

ios - 无法快速注销 pinterest

ios - 在 Swift 中保存数据

ios - SWIFT:如何向 NSDate 对象添加小时数

ios - Swift - 如何从 ModalPopupController 重新加载 ViewController

ios - MPMusicPlayerController.currentPlaybackTime 的奇怪行为

ios - 如何使用新的 iOS 6 方法使文本居中?

ios - 如何将图像图标附加到 `UIActivityViewController` ?

ios - 从谷歌地图(谷歌地图 iOS Swift)中删除一些标签(寺庙、餐馆等)