带有对象的二维多维数组

Two Multi Dimensional Array with Objects

我想使用 NSDictionay(我认为这是正确的方法)将数据保存到 class 中,其他 classes:

.h

@property (retain, nonatomic) NSArray   *NameKey;
@property (retain, nonatomic) NSArray   *DataFields;
@property (retain, nonatomic) NSDictionary *MDArray;

.m

@synthesize NameKey;
@synthesize DataFields;
@synthesize MDArray;

- (id) init
{
        NameKey = [NSArray arrayWithObjects:@"DeviceName",nil];
        DataFields = [NSArray arrayWithObjects:@"Serial", nil];
        MDArray = [NSDictionary dictionaryWithObjects:DataFields forKeys:NameKey];
}

几个问题:

  1. 这是设置 NSDictionary 的正确方法吗?

  2. 你怎么我add/delete/modify数据。假设名称是唯一的

提前致谢。

为什么不使用现代语法:

MDArray = @{ @"DeviceName": @"Serial" }

如果您想要一个可变版本,您可以向它发送 mutableCopy 消息

我解决这个问题的方法是:

devices = [[NSMutableArray alloc] init];
dataFields = [[NSArray alloc] initWithObjects:@"Name",@"Type", nil];

NSArray *addDevice = [[NSArray alloc] initWithObjects:@"MM-TEST",@"-- --", nil];
NSDictionary *infoblock = [[NSMutableDictionary alloc] initWithObjects:addDevice forKeys:dataFields];
[devices addObject:infoblock];

似乎工作正常。