0

我有一个 NSDictionary,我必须将它添加到 NSArray。我该怎么做?

NSDictionary *row = [NSDictionary dictionaryWithObjectsAndKeys:
     [NSString stringWithFormat:@"%@",NSLocalizedString(@"no_favorites", nil)], @"Address", nil];

如果我使用:

    aFavorite = [row allValues];

as sugested, if I print it I got:

(
"No favorites added"
)

What I need is:

  (
    {
    Address = "No favorites added";
 }
 )

Because I will use:

NSDictionary* dict = [aFavorite objectAtIndex:[indexPath row]];
 NSString *contentForThisRow = [dict objectForKey:@"Address"];

The dict value can have 1 or 2 keys.

4

4 回答 4

7

要转换字典,您可以使用它的方法:

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"];
于 2012-10-18T10:59:15.183 回答
2

调用allValues函数NSDictionary,它会返回NSArray所有的值。

NSArray *array = [row allValues];

要获取键的 NSArray,请使用,

NSArray *array = [row allKeys];

参考链接:Apple Doc


嗯,这是一个带有一些字符串连接的基本编程逻辑。如果你想要“键值对”,那么你必须使用 NSDictionary。但是,如果您愿意Address = Something,则将所有键放在一个数组中,然后将所有值放在不同的数组中,然后将它们循环到单个循环中。

于 2012-10-18T10:59:29.557 回答
0

如果您想访问所有值然后尝试它:- NSArray * values = [dictionary allValues];

如果访问所有键尝试它:- NSArray * values = [dict allValues];

于 2012-10-18T11:22:38.550 回答
0
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 是不可变的。

于 2012-10-18T11:20:15.710 回答