Objective c 拥有应用程序范围阵列的最佳方法?

Objective c 拥有应用程序范围阵列的最佳方法?,objective-c,ios,xcode,arrays,static,Objective C,Ios,Xcode,Arrays,Static,我有一个类,它包含一个从我的服务器下载数据的方法。这是JSON的形式,但被解析并放入数组中。由于这是一个“模型”文件,如何最好地创建它,以便多个“控制器”可以访问此数据?将其挂起应用程序委托,将其粘贴在全局变量中,或在适当的位置声明一个类方法以返回它 更好的是,现在开始考虑拥有一个适当的模型层,除其他外,它可以管理这些数据。这将使重构在未来随着应用程序的发展变得更加容易。您可以使用array对象创建类的单例对象。通过使用类方法,您可以在应用程序中的任何位置获取该数组 e、 g 在Cardname

我有一个类,它包含一个从我的服务器下载数据的方法。这是JSON的形式,但被解析并放入数组中。由于这是一个“模型”文件,如何最好地创建它,以便多个“控制器”可以访问此数据?

将其挂起应用程序委托,将其粘贴在全局变量中,或在适当的位置声明一个类方法以返回它


更好的是,现在开始考虑拥有一个适当的模型层,除其他外,它可以管理这些数据。这将使重构在未来随着应用程序的发展变得更加容易。

您可以使用array对象创建类的单例对象。通过使用类方法,您可以在应用程序中的任何位置获取该数组

e、 g

在Cardnames.h文件中

#import <Foundation/Foundation.h>

@interface CardNames : NSObject

@property (nonatomic, retain) NSMutableArray *CardNamesArray;

+(CardNames*) getCardsList;

@end
在其他课程中,你可以这样使用

#import "CardNames.h"
.
.
.
NSMutableArray *CardsArray = [[CardNames getCardsList] CardNamesArray];

全局变量?单身汉?[[UIApplication sharedApplication]delegate]的属性?谢谢,我猜它们都有各自的优点和缺点,所以建议使用哪种方法?我建议您将其作为应用程序委托的属性。通过模型层,您是否指的是核心数据?不一定;核心数据当然是我极力推荐的一个优秀的数据持久性工具。如果您没有持久化那么多数据,或者您的所有数据都是客户机/服务器数据,那么——不——最初不需要。“模型层”是一个通用术语。我将从一个相当复杂的后端数据库中持久化大量的数据,所以我认为核心数据是一个不错的选择。谢谢你的推荐。
#import "CardNames.h"
.
.
.
NSMutableArray *CardsArray = [[CardNames getCardsList] CardNamesArray];