在全局数据类中存储和检索数据
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 感觉不对。
【讨论】:
以上是关于在全局数据类中存储和检索数据的主要内容,如果未能解决你的问题,请参考以下文章