0

我想保存这个字典数组,并能够在另一个类中检索它并根据它做出决定。

这是数组:

NSArray* cellInfoArray = [[NSArray alloc] initWithObjects:[manufacturerTextField text],[lotNumberTextField text],[expirationDateTextField text],[techniqueTextField text],[cellNumberTextField text],[rhhrProfileTextField text],[donorNumberTextField text], nil];
    NSArray* keyNamingArray = [[NSArray alloc] initWithObjects:@"company",@"lot",@"expDate",@"tech",@"whichCell",@"rhTyping",@"donor", nil];

NSArray* resultsArray = [[NSArray alloc] initWithObjects:[capitalDResultLabel text],[capitalCResultLabel text],[capitalEResultLabel text],[cResultLabel text],[eResultLabel text],[fStarResultLabel text],[cwResultLabel text],[vResultLabel text],[capitalKResultLabel text],[kResultLabel text],[kpaResultLabel text],[kpbResultLabel text],[jsaResultLabel text],[jsbResultLabel text],[fyaResultLabel text],[fybResultLabel text],[jkaResultLabel text],[jkbResultLabel text],[xgaResultLabel text],[leaResultLabel text],[lebResultLabel text],[capitalSResultLabel text],[sResultLabel text],[mResultLabel text],[nResultLabel text],[p1ResultLabel text],[luaResultLabel text],[lubResultLabel text], nil];

NSArray* antigenNames = [[NSArray alloc] initWithObjects:@"D",@"C",@"E",@"c",@"e",@"f*",@"Cw",@"V",@"K",@"k",@"Kpa",@"Kpb",@"Jsa",@"Jsb",@"Fya",@"Fyb",@"Jka",@"Jkb",@"Xga",@"Lea",@"Leb",@"S",@"s",@"M",@"N",@"P1",@"Lua",@"Lub", nil];

_cellInfo = [[NSMutableDictionary alloc] initWithObjects:cellInfoArray forKeys:keyNamingArray];
_resultDictionary = [[NSMutableDictionary alloc] initWithObjects:resultsArray forKeys:antigenNames];

finalCellOne = [[NSMutableDictionary alloc] initWithObjectsAndKeys:_cellInfo,@"clerk",_resultDictionary,@"theResults", nil];

这可能是一些基本的东西,但我一直在尝试几件事(存档器、属性列表、nsuserdefaults)并且我一直得到“null”。

用户应该能够修改数据;因此,如果我们使用文件路径,第二个类也应该知道这一点。

我不一定需要你们提供任何代码;如果我能得到一些关于我的研究重点能够做到这一点的指导,我将不胜感激。多谢你们

4

1 回答 1

0

这听起来像是单例类对您有用的情况。对数据和序列化/反序列化的应用程序范围的访问将由您的单例处理。

@interface ApplicationData : NSObject

+ (id)sharedData;

//  your class properties that expose the data

@end

@implementation ApplicationData

+ (id)sharedData {
    static dispatch_once_t pred;
    static ApplicationData *cSharedInstance = nil;

    dispatch_once(&pred, ^{ cSharedInstance = [[self alloc] init]; });
    return cSharedInstance;
}

// you'll need to provide for serialization/deserialization as you are doing now.

@end

此后,您可以通过以下方式访问共享数据:[[ApplicationData sharedData] cellInfoArray]等。

于 2012-10-07T06:02:24.737 回答