在全局数据类中存储和检索数据

时间:2016-01-11 01:06:10

标签: swift function parse-platform save global

我对将数据存储在sperate类中感兴趣,以允许从应用程序中的任何视图保存和访问此数据。为此,我首先在我的项目中创建了一个名为GlobalData.swift的空类。在这个文件中,我有以下源代码:

import UIKit

    class Main {  
        var drinkData:PFObject?
        init(drinkData:PFObject) {
            self.drinkData = drinkData
        }
    }

在我的表视图中,当用户选择我正在执行的单元格保存Parse PFObject时,可以在以后轻松访问它。在我的Table类中,我有以下代码:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

    if let indexPath = self.tableView.indexPathForSelectedRow {
        let row = Int(indexPath.row)

        let localDrinkData = Main(drinkData:(objects?[row] as PFObject!))

        print("global : \(localDrinkData.drinkData)")

    }
} 

现在这完美无缺。 print行将完全按照我的要求执行(打印出PFObject以及此行中的所有项目),问题是我需要保存它然后才能访问它不同的阶级。

我的问题仍然存在。如何在不同的类中调用Main drinkData,并且能够像在上面的函数中一样打印它:

print("global : \(localDrinkData.drinkData)")

这是我获得此设计的原始源代码的地方。显然,我做了一些修改:Access variable in different class - Swift

非常感谢!

1 个答案:

答案 0 :(得分:0)

您能够从类Main()访问相同数据的唯一方法是传递您正在更改的Main()实例。如果你想从其他类访问Main()而不需要传递Main()实例,我建议将Main()转换为Singleton类。

import UIKit

class Main {
    static let sharedMain = Main()
    var drinkData:PFObject?
}

如果你想在main中设置/访问数据,它将如下所示:

设置:Main.sharedMain.drinkData = //insert PFObject

阅读:let sharedData = Main.sharedMain.drinkData

旁注:我建议您将类的名称更改为“DrinkManager”,使用名为Main的自定义类会感觉不对。

相关问题