【问题标题】:Store and Retrieve Data in Global Data Class在全局数据类中存储和检索数据
【发布时间】:2026-01-13 20:45:02
【问题描述】:

我有兴趣将数据存储在一个单独的类中,以允许从应用程序中的任何视图保存和访问这些数据。为此,我首先在我的项目中创建了一个名为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

非常感谢!

【问题讨论】:

    标签: swift function parse-platform save global


    【解决方案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 感觉不对。

    【讨论】: