在我正在为之努力的应用中,我需要可以在所有bytes=b''
中使用的数组变量。目前,当在视图中更改数组时,它存储在数据库中,当我需要在上一个视图中更新版本的数组时,我使用UIView
方法并从数据库中检索更新的数组。在通过segue转到另一个视图时,我使用viewWillAppear
传递的数据,但如果我使用后退按钮,或者只是通过标签栏更改屏幕,我会使用prepareForSegue
和查询。
在视图中创建数组时,是否可以在所有视图中访问其中的数据?
答案 0 :(得分:2)
正如我在评论中所说,单身人士通常因为种种原因而感到不满。但是,关于这个话题存在很多争论:
What is so bad about singletons?
话虽如此,我知道为会话全局提供变量的最佳方法是创建一个单例。
struct myArray {
static var data: [Int] = []
}
您可以将此单例设置为使用CoreData获取记录,并将当前工作版本存储在静态变量中以便快速访问。
注意:我真的很好奇看到其他一些方法。
答案 1 :(得分:0)
Singleton基本上是一个全局变量,您可以在任何视图中使用它们,但是一些开发人员遇到一些错误和困难,使用它需要您自担风险,当您确定要使用它时,我推荐这种方法数据很多(STILL RISKY),但这种方法就像数据处理女神:)。
创建一个NSObject
子类并将其命名为DataManager.swift
(我称之为数据管理器,因为它处理数据。)如下所示:
导入UIKit
class DataManager: NSObject {
//Store Data Globally
static var someData: NSArray! //This Boolean, you can choose whatever you want.
}
static
是保持数据生效的原因。
现在,您可以在任何地方存储和接收someData
,就像处理任何数据类型一样。
//Store
DataManager.someData = []
//Receive
print(DataManager.someData)