Objective-C 将字典附加到 NSDictionary

Posted

技术标签:

【中文标题】Objective-C 将字典附加到 NSDictionary【英文标题】:Objective-C append dictionary to NSDictionary 【发布时间】:2016-11-11 15:03:08 【问题描述】:

我需要使用 NSDictionary 向服务器发送数据。数据将是名称、性别 dll,来自文本字段。我知道我可以像这样保存一本字典。

NSDictionary * = @@"employee": @"EmpA",
                             @"gender":@"Male",
                             @"pob":@"SF",
                             @"age":@"27",
                             ;

但我需要添加多个数据,因为我有可以重复表单过程的按钮。之后,我将根据以下格式将整个数据发送到服务器。

"employee": [
    "name": "EmpA",
    "gender": "Male",
    "pob": "SF",
    "age": 27
    , 
    "name": "EmpB",
    "gender": "Female",
    "pob": "TX",
    "age": 36
    ]

如何动态追加字典?

谢谢

【问题讨论】:

使用NSMutableArray 保存多个字典 正如 rckoenes 所说,您需要使用 Mutable 版本。一般来说,你会经常使用NSMutableArrayNSMutableDictionaryNSMutableStringNSMutableRequest 【参考方案1】:

使用字典数组:

NSMutableArray *employees= [[NSMutableArray alloc] init];

for(//loop through the forms) 
    NSDictionary *emp = @@"name": @"EmpA",
                       @"gender":@"Male",
                       @"pob":@"SF",
                       @"age":@"27",
                      ;
    [employees addObject:emp];


NSDictionary *payload = @@"employee": employees;

我手头没有 mac,所以请原谅任何语法错误。

【讨论】:

【参考方案2】:

您需要创建一个字典数组并将其插入到您的“员工”键中。像这样的东西应该可以工作:

NSMutableDictionary *employee = [[NSMutableDictionary alloc]init];
NSMutableDictionary *emplyeeA = [@@"name": @"EmpA", @"gender": @"Male", @"pob": @"SF", @"age": @"27" mutableCopy];
NSMutableDictionary *emplyeeB = [@@"name": @"EmpB", @"gender": @"Female", @"pob": @"TX", @"age": @"36" mutableCopy];
NSMutableArray *tempArray = [[NSMutableArray alloc] init];
[tempArray addObject: emplyeeA];
[tempArray addObject: emplyeeB];
[employee setObject:tempArray forKey:@"employee"];

【讨论】:

您不需要为emplyeeA & B 再次请求mutableCopy

以上是关于Objective-C 将字典附加到 NSDictionary的主要内容,如果未能解决你的问题,请参考以下文章

Objective-C 将图像缩略图附加到视图的末尾

Objective-C如何使用标题中的嵌套字典将数据发送到Http Post请求

循环遍历数组并附加到objective-C中的字符串

如何在使用桥接头时将数据(字典)从 Objective-C 控制器传递到 Swift `viewcontroller` 中?还有其他方法吗?

将字典附加到循环中的列表

如何将字典键附加到列表中? [复制]