在所有视图中使用数组变量

时间:2015-12-29 19:00:48

标签: ios swift

在我正在为之努力的应用中,我需要可以在所有bytes=b'' 中使用的数组变量。目前,当在视图中更改数组时,它存储在数据库中,当我需要在上一个视图中更新版本的数组时,我使用UIView方法并从数据库中检索更新的数组。在通过segue转到另一个视图时,我使用viewWillAppear传递的数据,但如果我使用后退按钮,或者只是通过标签栏更改屏幕,我会使用prepareForSegue和查询。

在视图中创建数组时,是否可以在所有视图中访问其中的数据?

2 个答案:

答案 0 :(得分:2)

正如我在评论中所说,单身人士通常因为种种原因而感到不满。但是,关于这个话题存在很多争论:

What is so bad about singletons?

话虽如此,我知道为会话全局提供变量的最佳方法是创建一个单例。

struct myArray {
    static var data: [Int] = []
}

您可以将此单例设置为使用CoreData获取记录,并将当前工作版本存储在静态变量中以便快速访问。

注意:我真的很好奇看到其他一些方法。

答案 1 :(得分:0)

的Singleton

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)