我想保存这个词典数组,并能够检索另一个类并根据它做出决定。
这是数组:
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];
这可能是基本的东西,但我一直在尝试几件事(archiver,属性列表,nsuserdefaults),并且我一直“无效”。
用户应该能够修改数据;因此,如果我们使用文件路径,第二个类也应该知道。
我不一定需要你们的任何代码;如果我得到一些关于我的研究重点可以做到这一点的指导,我们将不胜感激。 谢谢你们
答案 0 :(得分: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]
等。