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

时间:2012-07-21 17:58:47

标签: objective-c ios xcode arrays static

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

2 个答案:

答案 0 :(得分:2)

将其挂在app代理上,将其粘贴到全局变量中,或在返回它的适当位置声明一个类方法。

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

答案 1 :(得分:0)

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

e.g。

在Cardnames.h文件中

#import <Foundation/Foundation.h>

@interface CardNames : NSObject

@property (nonatomic, retain) NSMutableArray *CardNamesArray;

+(CardNames*) getCardsList;

@end

在Cardnames.m文件中

#import "CardNames.h"

@implementation CardNames

@synthesize CardNamesArray;

static CardNames *cards = nil;

+(CardNames*) getCardsList
{
    @synchronized(self)
    {
        if(cards == nil)
        {
            cards = [[self alloc] init];

            cards.CardNamesArray = [[NSMutableArray alloc] init];

            /// code to fill array

        }
        return cards;
    }
}
@end

在其他课程中你可以像这样使用

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