全局存储NSArray以节省下载内容的数据带宽

时间:2014-01-10 09:16:27

标签: ios objective-c memory memory-management

我正在制作一个应用程序,作为其中的一部分需要从2个RSS源下载信息。

但是,这些Feed会在整个应用中使用该信息,并且可能会或可能不会重新加载,因为用户需要查看他们选择的UIViewController

所以我的问题是:

建议在UIAppDelegate的应用程序负载上设置这些数组,还是在性能方面是否是一个很大的禁忌?

我的代码正常运行,我只是想知道执行它以最大限度地减少数据使用量的最佳位置,同时最适合整个应用程序访问?

任何帮助都会很棒,因为如果我需要继续这样做,有很多代码需要转移。 谢谢你的建议。

PS我知道我可以做很多阅读和正在做的事情,使用SO是本研究的一部分,以获得开发人员的意见。我希望它不会违反任何规则或让人不安:-)

1 个答案:

答案 0 :(得分:0)

将文件创建为NSObject,像这样做标题;

@interface myData : NSObject
{
    NSMutableArray *myDataArray;
}

@property (nonatomic, retain) NSMutableArray *myDataArray;

+ (myData *)sharedData;

@end

然后在.m中添加此

#import “myData.h”

static myData *sharedData;

@implementation myData

@synthesize myDataArray;

+ (myData *)sharedData
{

    if(!sharedData)
    {
        sharedData = [[myData alloc] init];
    }
    return sharedData;
}

- (id)init
{
    self = [super init];
    if(self)
    {
        myDataArray = [[NSMutableArray alloc] init];

    }
    return self;
}

然后在每个VC中,只需#import“myData.h”,并在需要时执行此操作;

myData *localShared = [myData sharedData];

localShared.myDataArray = // This is your array and will look the same throughout
NSString *myStringObj = localShared.myDataArray[4];  // So you can do this kind of stuff

这是从记忆中,我没有测试但我认为这非常接近。希望它有所帮助。