我有一本字典。这是我的主词典的结构:
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"];