Objective c 将阵列中的数据从一个视图传输到另一个视图

Objective c 将阵列中的数据从一个视图传输到另一个视图,objective-c,ios,cocoa-touch,nsmutablearray,retain,Objective C,Ios,Cocoa Touch,Nsmutablearray,Retain,我有一个类,叫做Class1,它包含一个数组,叫做array1,作为一个属性,我保留并合成了它 我想使用从其他视图获得的值将对象添加到该数组中。因此,对于每个视图,我引用Class1,创建一个对象,然后将值添加到array1,并为特定视图显示它。这管用 当我转到新视图时,我需要重新初始化array1以将新对象复制到它(或者它会给我一个错误,即array1为空),但以前的值(以前视图中存储的值)丢失。我知道“retain”用于特定的类,数组不会在整个程序过程中保留值 我如何处理这个问题?你可以考虑

我有一个类,叫做
Class1
,它包含一个数组,叫做
array1
,作为一个属性,我保留并合成了它

我想使用从其他视图获得的值将对象添加到该数组中。因此,对于每个视图,我引用
Class1
,创建一个对象,然后将值添加到
array1
,并为特定视图显示它。这管用

当我转到新视图时,我需要重新初始化
array1
以将新对象复制到它(或者它会给我一个错误,即
array1
为空),但以前的值(以前视图中存储的值)丢失。我知道“retain”用于特定的类,数组不会在整个程序过程中保留值


<>我如何处理这个问题?

你可以考虑创建一个类,你可以在你的应用程序中访问任何一个类。苹果文档有一个创建单例类的工具。您可以使
Class1
成为单例类。

您可以使用
NSUserDefaults
存储数组。哈哈。精彩的。我会试试这个然后回来。。。如果我创建了很多单例类,那么在视图之间传递变量和其他东西不是很容易吗?感谢链接到苹果的标准方法+1@Legolas制造太多的单件意味着只要你的应用程序运行,它们都会留在内存中。这可能会导致内存警告,并在稍后强制关闭您的应用程序。单身汉应该被明智地使用。谢谢你。您能告诉我这与NSUserDefaults有何不同/效率更高吗?
NSUserDefaults
对于存储数组来说可能不是一个坏选项,但请记住,尽管它会缓存数据,但它会定期读写数据库。我并不反对它,但我认为它是存储应用程序首选项的地方,而不是通信机制或存储机制。还提供了用于这两个目的的其他方法。如果数据操作超出了数组的范围,即您希望父类在任何地方都可用以操作或响应更改,我宁愿选择单例。但是太多的单身人士如果拥有大量的数据,就会成为一个内存消耗者。