1

私は辞書の辞書を持っています。これは私のメイン辞書の構造です:

The content of dictionary(
        {
        mondaysSales=     {
        totalSale = "1234.99";
    },
        tusdaySales= {
        totalSale = "1234.99";
    },
        wednesdaySale={
        totalSale = "1234.99";
    },
        thursdaySale{
        totalSale = "1234.99";
    },
        fridaySale{
        totalSale = "1234.99";
    }
)

しかし、配列に日のキーを使用して毎日追加したいと考えています。例えば:

これは、配列のエントリの 1 つになります。

        fridaySale{
        totalSale = "1234.99";
    }

どうすればこれを達成できますか?, 本当に助かります.

4

5 に答える 5

2

辞書をループして配列に追加できます。辞書はソートされていないため、平日の正しい順序にならない可能性があることに注意してください

NSMutableArray *array = [@[] mutableCopy]
for (NSString* key in dictionary) {
    id value = [dictionary objectForKey:key];
    [array addObject:value];
}
于 2013-07-15T16:25:09.313 に答える
1

新しいオブジェクト タイプを作成し、それを配列に追加してみませんか?

StorageObject.h:

@interface StorageObject:NSObject
@property (nonatomic, retain) NSString *day;
@property (nonatomic, retain) NSString *saleType;
@property (nonatomic, retain) NSNumber *saleValue;
@end

StorageObject.m:

@implementation StorageObject
@synthesize
day = _day,
saleType = _saleType,
saleValue = _saleValue;

- (void)dealloc
{
    [_day release];
    [_saleType release];
    [_saleValue release];
    [super dealloc];
}
@end

次に、次を使用して NSDictionary をループします。

for(NSString *key in [dictionary1 allKeys])
{
    NSDictionary *innerDictionary = [dictionary1 objectForKey:key];

}

そのループで返された辞書ごとに、カスタム ストレージ オブジェクトをインスタンス化し、それを配列に追加します。

于 2013-07-15T17:12:23.870 に答える
0

辞書の辞書があると仮定します。

できるよ

NSMutableArray *list = [@[] mutableCopy]; 

for (NSString *key in [mainDictionary allKeys]) {
    NSDictionary *dict =  @{ 
                        key :  [mainDictionary objectForKey:key],   
                           };
    [list addObject:dict];
}
于 2013-07-15T17:02:29.487 に答える
0

次のようにして、NSDictionary を作成せずに NSArray を作成するだけの簡単な方法があります。

NSArray *Array = @[@{@"friday sale, totalSale" : @"1234.99"}]

または、その中の他のものから詳細を取得したい場合。

NSInteger value = 1;
NSArray *Array = @[@{ @"Friday sale, totalSale" : [NSString stringWithFormat:@"%ld", (long)value]}];

次に、単に次のように言うだけでこの値が得られます。

NSString *somestring = Array["Friday sale, totalSale"];
于 2014-12-22T16:06:21.820 に答える
0

私は解決策を見つけます:

NSMutableDictionary *tempDict=[[NSMutableDictionary alloc]init];
[tempDict setObject:[mainDic objectForKey:key] forKey:key];
[myArray addObject:tempDict];
于 2013-07-15T23:27:02.893 に答える