将NSDictionary中的键值添加到NSarray中

时间:2012-03-17 17:32:30

标签: iphone xcode nsarray nsdictionary

我想将字典中的所有键添加到数组中。这就是我现在正在做的事情。如下面的代码:

for (NSString * akey in _groups ) {

    NSLog(@"%@",akey);
    [_groupArray addObject:akey];
    NSLog(@"%@",_groupArray);
}

_groupArray的日志显示为Null。我甚至尝试使用insertObjectAtIndex,即使这不起作用。不确定我做错了什么,是的,我得到字典中的键(_groups)没有错。

4 个答案:

答案 0 :(得分:2)

您应该在开始向其添加值之前初始化数组。否则,它最初为nil,并将保持nil

您可以使用allKeys获取阵列的所有键。但由于_groupArrayNSMutableArray,您必须这样做:

_groupArray = [NSMutableArray arrayWithArray:[_groups allKeys]];

或者:

_groupArray = [[_groups allKeys] mutableCopy];

答案 1 :(得分:1)

如果_groupsArray是新的或空的,那么你可以使用

_gropusArray = [NSMutableArray arrayWithArray:[dict allKeys]];

这应该会从编译器警告中释放出来。

如果之前_groupsArray不是空的,你需要添加值,那么请去:

[_groupsArray addObjectsFromArray:[dict allKeys]];

答案 2 :(得分:0)

这就是你应该怎么做....

_groupsArray=[dict allKeys];

不要忘记为你的_groupsArray分配内存......:)

答案 3 :(得分:0)

你有没有检查过你已经分配并初始化了你的可变数组。除非你已经添加了一些东西 - 甚至那时 - 考虑使用NSDictiomary allKeys方法而不是遍历字典。

来自文档

<强> allKeys

返回一个包含字典键的新数组。

- (NSArray *) allKeys

返回值

包含字典键的新数组,如果字典没有条目,则为空数组。

<强>讨论

未定义数组中元素的顺序。