gpt4 book ai didi

ios - 获取NSMuttableArray中的(NSDictionary)一串键的所有相似值

转载 作者:行者123 更新时间:2023-12-01 19:00:27 25 4
gpt4 key购买 nike

我有一个NSMuttableArray具有类似的值

(
{
MedicineAlarmTime = "18:00:00";
MedicineDateTime = "24/04/2014 16:00:09";
},
{
MedicineAlarmTime = "18:00:00";
MedicineDateTime = "24/04/2014 16:00:26";
},
{
MedicineAlarmTime = "19:00:00";
MedicineDateTime = "24/04/2014 16:00:26";
},
{
MedicineAlarmTime = "19:00:00";
MedicineDateTime = "24/04/2014 16:00:26";
}
)

是否有可能检索类似“MedicineAlarmTime”的数组
array1 = (
{
MedicineAlarmTime = "18:00:00";
MedicineDateTime = "24/04/2014 16:00:09";
},
{
MedicineAlarmTime = "18:00:00";
MedicineDateTime = "24/04/2014 16:00:26";
}
)

array2 = (
{
MedicineAlarmTime = "19:00:00"
MedicineDateTime = "24/04/2014 16:00:09";
},
{
MedicineAlarmTime = "19:00:00";
MedicineDateTime = "24/04/2014 16:00:26";
}
)

最佳答案

NSMutableDictionary *groupedAlarms = [NSMutableDictionary dictionary];

for (NSDictionary *alarm in originalArray) {
NSString *alarmTime = [alarm objectForKey: MedicineAlarmTime];

NSMutableArray *alarmGroup = [groupedAlarms objectForKey: MedicineAlarmTime]
if (alarmGroup) {
[alarmGroup addObject: alarm];
} else {
alarmGroup = [NSMutableArray arrayWithObjects: alarm, nil];
[groupedAlarms setValue:alarmGroup forKey:alarmTime];
}
}

这将创建一个NSMutableDictionary, groupedAlarmsgroupedAlarms中的键是原始数组中字典的警报时间-实际警报时间值。每个键的值是数组。数组包含原始数组的字典-根据警报时间排序(用作包含它们的数组的键)。

如果希望上例中的“alarmGroup”更通用,而不是仅将组完全匹配,则可以使用相同的 forin循环结构。确定是将其放入现有组还是创建新组的检查变得稍微复杂些,但是重要的是,我们仍然不需要对数组进行预排序然后再次进行遍历。

我可以看到进行预排序的唯一原因是,如果您要设置一定数量的组,并且每个组中都有一定数量的对象。这样,在对数组进行排序之前,您实际上无法知道将每个对象放入哪个组。

但是在这里,我们试图将对象与相似的对象放在一起,所以算法很简单:

抓住物体。查看它是否属于现有组。如果不是,请为此对象创建一个新组。移至下一个对象。

对于任何拒绝投票的人...在这个答案中,我不能真正提供比现有示例代码更复杂的示例代码,除非原始问题更明确。

关于ios - 获取NSMuttableArray中的(NSDictionary)一串键的所有相似值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23267227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com