如何将字典的NSDictionary添加到NSArray中



我有一本字典。这是我的主词典的结构:

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

但是我想将带有day键的每一天添加到一个数组中。例如:

这将是数组的一个条目:

        fridaySale{
        totalSale = "1234.99";
    }

你们中有谁能做到这一点?,我真的很感激你的帮助。

您可以循环遍历字典并将其添加到数组中。请注意,字典没有排序,你可能不会为你的工作日找到正确的顺序

NSMutableArray *array = [@[] mutableCopy]
for (NSString* key in dictionary) {
    id value = [dictionary objectForKey:key];
    [array addObject:value];
}

为什么不创建一个新的对象类型并将其添加到数组中?

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];
}

对于该循环中返回的每个字典,实例化您的自定义存储对象并将其添加到数组中。

我找到了解决方案:

NSMutableDictionary *tempDict=[[NSMutableDictionary alloc]init];
[tempDict setObject:[mainDic objectForKey:key] forKey:key];
[myArray addObject:tempDict];

假设您有一本字典:

你可以做

NSMutableArray *list = [@[] mutableCopy]; 
for (NSString *key in [mainDictionary allKeys]) {
    NSDictionary *dict =  @{ 
                        key :  [mainDictionary objectForKey:key],   
                           };
    [list addObject:dict];
}

有一种简单的方法可以做到这一点,只需不创建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"];

最新更新