【发布时间】:2014-04-13 14:37:30
【问题描述】:
我有一个字典输入数组:
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";
},
.
.
)
}
我尝试了什么:
我使用这一行成功获得了distinct times 的数组:
NSArray *arrTempKeys = [myArray valueForKeyPath:@"@distinctUnionOfObjects.Time"];
然后使用for loop中的谓词为arrTempKeys,得到所有具有相同time值的字典:
NSPredicate *pred = [NSPredicate predicateWithFormat:@"Date == %@",str];
NSArray *arrTemp = [myArray filteredArrayUsingPredicate:pred];
最后,我将这个arrTemp 分配为Key time 的对象,得到了想要的结果。
我想要什么:
我知道还有很多其他方法可以获得此输出。但我只想知道是否有任何单一的KVC 编码行或任何其他可用的最佳方式来做这件事。
【问题讨论】:
-
类似问题在这里:stackoverflow.com/questions/22288481/… 和这里:stackoverflow.com/questions/20925537/…。还有一些关于“最佳”方法的讨论。
-
@MartinR:哎呀.. !!实际上我在问这个问题之前尝试过谷歌。但是当你不知道“类似问题的标题是什么”时,总是很难找到类似的问题。不过,如果您发现此问题不会为我们的社区增加任何价值,请将其标记为重复。
标签: ios iphone objective-c kvc