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

Posted

技术标签:

【中文标题】在全局数据类中存储和检索数据【英文标题】:Store and Retrieve Data in Global Data Class 【发布时间】:2016-01-11 01:06:10 【问题描述】:

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

import UIKit

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

在我的表格视图中,当用户选择一个单元格时,我正在保存ParsePFObject,以便以后可以轻松访问它。在我的 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】:

您能够从您的 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 感觉不对。

【讨论】:

以上是关于在全局数据类中存储和检索数据的主要内容,如果未能解决你的问题,请参考以下文章

获取存储在 firebase 中的数据值

如何在 Angular js 中存储和检索数据?

Android 权限常量保存在哪个类中

Swift - 存储和检索数据 [关闭]

常见分布式全局唯一ID生成策略

常见分布式全局唯一ID生成策略