Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在所有视图中使用数组变量_Ios_Swift - Fatal编程技术网

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

Ios 在所有视图中使用数组变量,ios,swift,Ios,Swift,在我工作的应用程序中,我需要一个数组变量,该变量可以在所有UIViews中使用。当前,当在视图中更改阵列时,它将存储在数据库中,当我需要上一个视图中阵列的更新版本时,我将使用viewwillbeen方法从数据库中检索更新后的阵列。在按顺序转到另一个视图时,我通过prepareForSegue使用传递的数据,但是如果我使用后退按钮,或者只是通过选项卡栏更改屏幕,我使用视图将出现和查询 当在视图中创建数组时,是否有任何方式可以在所有视图中访问其中的数据?正如我在评论中所述,由于各种原因,通常不赞成使

在我工作的应用程序中,我需要一个数组变量,该变量可以在所有
UIView
s中使用。当前,当在视图中更改阵列时,它将存储在数据库中,当我需要上一个视图中阵列的更新版本时,我将使用
viewwillbeen
方法从数据库中检索更新后的阵列。在按顺序转到另一个视图时,我通过
prepareForSegue
使用传递的数据,但是如果我使用后退按钮,或者只是通过选项卡栏更改屏幕,我使用
视图将出现
和查询


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

正如我在评论中所述,由于各种原因,通常不赞成使用单例。然而,在这个问题上有很多争论:

话虽如此,我所知道的使变量在会话中全局可用的最好方法是创建一个单例

struct myArray {
    static var data: [Int] = []
}
您可以将此单例设置为使用CoreData获取记录,并将当前工作版本存储在静态变量中以便快速访问

注意:我真的很想看看其他的方法。

Singleton Singleton基本上是一个全局变量,您可以在任何视图中使用它,但是一些开发人员遇到一些错误和困难,使用它的风险由您自己承担。当您确定您将大量使用该数据(仍然有风险)时,我推荐此方法,但此方法类似于数据处理女神(:)

创建一个
NSObject
子类,并将其称为
DataManager.swift
(我称之为数据管理器,因为它可以处理数据),如下所示:

导入UIKit

class DataManager: NSObject {
        
   //Store Data Globally
   static var someData: NSArray! //This Boolean, you can choose whatever you want.
}
静态
是保持数据活动的关键

现在,您可以从任何地方存储和接收
someData
,就像您处理这样的任何数据类型一样

//Store
DataManager.someData = []

//Receive 
print(DataManager.someData)

当然,你可以使用单例,但这通常是不赞成的。(见链接)我很想知道,如果你不想继续保存/获取记录,还有哪些其他选项。(链接:)请不要使用单件或任何其他全球数据。将数据从视图控制器传递到视图控制器。从那里到风景。创建一个知道如何处理数据的通用UIView基类。在这里,我发布了代码来展示如何通过子类化轻松地将表单vc传递给vc。不包括子类视图。Hello Farhad,您会提供哪一个更多,导入部分下面定义的单例变量还是全局变量。它们的优点和缺点是什么?好吧,如果你想在其他视图中使用这个数组并且是可靠的,那么你需要单例。全局变量是安全的(但并非始终如此),因为它超出了函数范围,但更为有限。但我推荐单身汉。搜索
struct
也可能会有所帮助。