0

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つのキーを持つことができます。

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、1つの配列ですべてのキーを取得し、別の配列ですべての値を取得してから、それらを1つのループでループします。

于 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 に答える