gpt4 book ai didi

ios - 使用 KVC 从 NSMutableArray 获取 NSMutableDictionary

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:07:36 24 4
gpt4 key购买 nike

我有一个字典输入数组:

myArray = (
{
name:"abc";
time:"6:00";
},
{
name:"xyz";
time:"7:00";
},
.
.
)

我想要这样的输出字典:

myDictionary = {
"6:00":(
{
name:"abc";
time:"6:00";
},
.
.
)
"7:00":(
{
name:"xyz";
time:"7:00";
},
.
.
)
}

我尝试了什么:

我使用这一行成功地获得了一个不同时间的数组:

NSArray *arrTempKeys = [myArray valueForKeyPath:@"@distinctUnionOfObjects.Time"];

然后使用 for 循环 中的谓词 for arrTempKeys,得到所有具有相同 time 值的字典:

NSPredicate *pred = [NSPredicate predicateWithFormat:@"Date == %@",str];
NSArray *arrTemp = [myArray filteredArrayUsingPredicate:pred];

最后,我将此 arrTemp 指定为 Key time 的对象并获得了所需的结果。


我想要什么:

我知道还有许多其他方法可以获得此输出。但我只想知道是否有任何单个 KVC 编码行或任何其他可用于执行此操作的最佳方法。

最佳答案

你想要的太多了。只写一个简单的循环。这将是最有效、最清晰、可能也是最可靠的解决方案:

NSMutableDictionary* myDict = [NSMutableDictionary dictionary];
for (NSDictionary* innerDict in myArray) {
NSString* time = innerDict[@"time"];
NSMutableArray* innerArray = myDict[time];
if (innerArray == nil) {
innerArray = [NSMutableArray array];
[myDict setValue:innerArray forKey:time];
}
[innerArray addObject:innerDict];
}

关于ios - 使用 KVC 从 NSMutableArray 获取 NSMutableDictionary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22301067/

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