objective-c - 如何在Objective C中组合数组字典中的两个键值
问题描述
我在数组中有多个字典对象。现在,特别是字典,我有两个键“类别”和“createdDate”来自另一个键。
情况: - 我需要一个包含对象的数组,使得具有相同日期的类别可以组合在一起并形成一个对象。那些具有不同日期的类别是它自己的另一个对象。
我有一种情况,我必须在键之间放置各种比较条件,这是这样做的基本方法。--- 不需要
需要您对不同方法的宝贵建议,这是必需的,也不复杂。提前致谢。
解决方案
给你一个例子
NSDateFormatter * df = [NSDateFormatter new];
for (id object in self.mainArray) {
[df setDateFormat:@"MM/dd/yyyy"];
NSString *dateString = [df stringFromDate:[object objectForKey:@"createdDate"]];
NSMutableArray *sectionArray = self.totalsSectionDictionary[dateString];
if (!sectionArray) {
sectionArray = [NSMutableArray array];
self.totalsSectionDictionary[dateString] = sectionArray;
}
NSString * tempString = [object valueForKey:@"category"]
[sectionArray addObject:@{@"value" : tempString}];
}
这会产生一个按日期组合为字符串值的对象字典,并且在每个日期键中都驻留该日期的值数组。从那里,您需要梳理出这些值并像这样对它们进行排序:
NSArray * tempUnsortedArray = [self.totalsSectionDictionary allKeys];
NSArray *arrKeys = [tempUnsortedArray sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"MM/dd/yyyy"];
NSDate *d1 = [df dateFromString:(NSString*) obj1];
NSDate *d2 = [df dateFromString:(NSString*) obj2];
return [d2 compare: d1];
}];
NSMutableArray * tempArray1 = [NSMutableArray array];
for (NSInteger i = 0; i < arrKeys.count; i++) {
NSMutableArray *sectionArray = self.totalsSectionDictionary[arrKeys[i]];
}
好了,最后一个 for 循环将允许您按日期遍历存储在原始字典中的每个部分数组,以便您可以将它们放入集合或表格视图中
祝你好运
推荐阅读
- path - 关闭路径后,我放入路径中的所有内容都会被删除
- python - 将字典项与列表中的字符串连接起来
- php - 仅当您登录时才显示名称 - laravel
- linux - 在 bash 中每 100ns 轮询一次
- proxy - esp8266 客户端连接失败,使用 cdn 代理
- javascript - getElementById 没有得到正确的元素?
- android - Moshi 和 Retrofit 无法解析简单的 JSON
- django - Django Custom User 没有显示带有外键的额外字段作为选择列表
- sql - 使用一条 INSERT 语句复制多条记录
- c# - Moq 异步 DbSet 设置 IDbAsyncQueryProvider