Ios 从多个视图访问NSArray

Ios 从多个视图访问NSArray,ios,uiviewcontroller,nsarray,nsobject,Ios,Uiviewcontroller,Nsarray,Nsobject,我在我的应用程序中使用了一个数据控制器类,它处理解析xml和一些对我的应用程序至关重要的其他操作。我希望能够做到的是将它解析的数据存储在一个数组中,该数组可以在我的应用程序的多个视图中访问。现在,每个视图都创建自己的data controller类实例,因此存储数据的数组特定于该视图控制器。是否仍有方法为每个视图控制器创建data controller类的单个实例,但数据存储在所有视图都可以访问的数组中?我曾尝试使用NSUserDefaults存储,但这似乎不是最有效的方法。每个视图控制器都需要

我在我的应用程序中使用了一个数据控制器类,它处理解析xml和一些对我的应用程序至关重要的其他操作。我希望能够做到的是将它解析的数据存储在一个数组中,该数组可以在我的应用程序的多个视图中访问。现在,每个视图都创建自己的data controller类实例,因此存储数据的数组特定于该视图控制器。是否仍有方法为每个视图控制器创建data controller类的单个实例,但数据存储在所有视图都可以访问的数组中?我曾尝试使用NSUserDefaults存储,但这似乎不是最有效的方法。每个视图控制器都需要有自己的数据控制器类实例,因为我使用每个视图控制器中使用的委托方法。我希望这是有道理的

实现这一点有两种方法(好的,可能不止两种,但它们是最常见的):

  • 将数组存储在应用程序委托中,并将其作为属性访问
  • 创建要保存数组(和其他可能的数据/方法)的单例对象

在这两个应用程序中,您更喜欢哪一个?如果您有一个小型应用程序,并且只有一个阵列,则应用程序代理就可以了。但是,如果你打算拥有更多的共享数据,那么使用AppDelegate来实现这一目的可能会变得一团糟。因此我更喜欢使用singleton对象,因为这是一种很好的编程实践,也是一种更正确的方法。非常感谢。我仍然可以在单例中使用委托方法吗?我的想法是否定的,因为您只有一个实例,那么它如何知道是谁初始化了它?