带有对象的二维多维数组
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];
}
几个问题:
这是设置 NSDictionary 的正确方法吗?
你怎么我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];
似乎工作正常。
我想使用 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];
}
几个问题:
这是设置 NSDictionary 的正确方法吗?
你怎么我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];
似乎工作正常。