NSArray 和 NSDictionary
Posted
技术标签:
【中文标题】NSArray 和 NSDictionary【英文标题】:NSArray and NSDictionary 【发布时间】:2012-10-18 10:56:03 【问题描述】:我有一个 NSDictionary,我必须将它添加到 NSArray。我该怎么做?
NSDictionary *row = [NSDictionary dictionaryWithObjectsAndKeys:
[NSString stringWithFormat:@"%@",NSLocalizedString(@"no_favorites", nil)], @"Address", nil];
如果我使用:
aFavorite = [row allValues];
按照建议,如果我打印它,我得到了:
(
"No favorites added"
)
我需要的是:
(
Address = "No favorites added";
)
因为我会使用:
NSDictionary* dict = [aFavorite objectAtIndex:[indexPath row]];
NSString *contentForThisRow = [dict objectForKey:@"Address"];
dict 值可以有 1 或 2 个键。
【问题讨论】:
您的意思是要将 NSDictionary 转换为 NSArray? 是的,就是我要找的 【参考方案1】:要转换字典,您可以使用它的方法:
myArray = [[NSArray alloc] initWithArray:[myDic allValues]];
更新
当您想要添加 dic 以检索它并使用键检索值时,请使用 NSMutableArray
,如下所示:
NSMutableArray *myArray = [[NSMutableArray alloc] init];
[myArray addObject:myDic];
然后只需使用以下命令检索 dic:
NSDictionary *myDic = [myArray objectAtIndex:indexPath.row];
NSString *value = [myDic objectForKey:@"myValue"];
【讨论】:
然后添加它自己的 dic,而不是值或键,请参阅我的更新答案。 我需要 NSArray,所以,我创建了一个 NSMutableArray 并从 NSMutableArray 生成我的 NSArray 在 initWithArray 中没有任何意义:...只需使用 [myDic allValues]【参考方案2】:调用NSDictionary
的allValues
函数,它将返回所有值的NSArray
。
NSArray *array = [row allValues];
要获取键的 NSArray,请使用,
NSArray *array = [row allKeys];
参考链接:Apple Doc
这是一个带有一些字符串连接的基本编程逻辑。如果你想要“键值对”,那么你必须使用 NSDictionary。但如果你想要Address = Something
,那么将所有键放在一个数组中,然后将所有值放在不同的数组中,然后在单个循环中循环它们。
【讨论】:
【参考方案3】:如果您想访问所有值然后尝试它:- NSArray * values = [字典 allValues];
如果访问所有密钥,请尝试:- NSArray * values = [dict allValues];
【讨论】:
【参考方案4】:NSDictionary *row = [NSDictionary dictionaryWithObjectsAndKeys:
[NSString stringWithFormat:@"%@",NSLocalizedString(@"no_favorites", nil)], @"Address", nil];
[aFavorite addObject:row];
然后:
NSDictionary* dict = [aFavorite objectAtIndex:[indexPath row]];
NSString *contentForThisRow = [dict objectForKey:@"Address"];
我有一个 NSDictionary,我必须将它添加到一个 NSArray
如果您的意思是在运行时将 NSDictionary 添加到 NSArray,很抱歉您不能这样做,NSArray 是不可变的。
【讨论】:
addObject 方法适用于 NSMutableArray,我需要一个 NSArray以上是关于NSArray 和 NSDictionary的主要内容,如果未能解决你的问题,请参考以下文章