用字典初始化NSArray

时间:2014-05-05 13:01:46

标签: ios objective-c nsarray nsdictionary

如何使用字符串初始化数组,其中键为字符串,值为布尔值。这样的事情

array = @[@{@"fieldX": @FALSE, @"fieldY": @FALSE},@{@"fieldX": @FALSE, @"fieldY": @FALSE}                    ];

但我不明白什么是关键,什么是上面的价值。

4 个答案:

答案 0 :(得分:1)

你可以这样做:

NSArray *array = @[
                   @{
                       @"fieldX" : @(NO),
                       @"fieldY" : @(NO)
                       },
                   @{
                       @"fieldX" : @(NO),
                       @"fieldY" : @(NO)
                       }
                   ];

BOOL secondFieldX = [[array[1] valueForKey:@"fieldY"] boolValue];

无论如何,您可以使用模型对象代替字典,但这是另一个故事。

答案 1 :(得分:0)

你可以试试这个......

array_office_list=[[NSMutableArray alloc] initWithCapacity:0];
        for (int i=0;i<4;i++) {
            NSMutableDictionary *dict=[[[NSMutableDictionary alloc] init] autorelease];
            if (i==0) {
                [dict setObject:@"" forKey:@"name"];
                [dict setObject:@"" forKey:@"address"];
                [dict setObject:@"" forKey:@"phone"];
                [dict setObject:@"" forKey:@"email"];
                [array_office_list addObject:dict];
            }
            if (i==1) {
                 [dict setObject:@"" forKey:@"name"];
                [dict setObject:@"" forKey:@"address"];
                [dict setObject:@"" forKey:@"phone"];
                [dict setObject:@"" forKey:@"email"];
                [array_office_list addObject:dict];
            }
            if (i==2) {
                [dict setObject:@"" forKey:@"name"];
                [dict setObject:@"" forKey:@"address"];
                [dict setObject:@"" forKey:@"phone"];
                [dict setObject:@"" forKey:@"email"];
                [array_office_list addObject:dict];
            }
            if (i==3) {
                 [dict setObject:@"" forKey:@"name"];
                [dict setObject:@"" forKey:@"address"];
                [dict setObject:@"" forKey:@"phone"];
                [dict setObject:@"" forKey:@"email"];
                [array_office_list addObject:dict];
            }
        }

答案 2 :(得分:0)

您已创建一个包含2个NSDictionaries的数组。 这是使用上述语法创建NSDictionary的方式:@{key:value , key:value , key:value} 这是使用上述语法创建NSArray的方式:@[object , object , object]

在你的例子中。 第一个NSDictionary有两个键:fieldXfieldY,两者的BOOL值均为NO / FALSE 第二个NSDictonary具有相同的键值。

答案 3 :(得分:0)

您可以使用

+[NSDictionary dictionaryWithObjects:(NSArray *)objects forKeys:(NSArray *)keys];

从数组初始化字典......

如果你想从字典中获取所有键或值,你可以这样做

NSArray *keys = [dict allKeys];
NSArray *values = [dict allValues];

如果需要,可以使用它来创建包含组合的新数组。