我有NSArray
,我需要从两个密钥中获取数据并将其放在NSMutableDictionary
中。一个键具有string
值和其他NSNumber
值。当我尝试创建NSCountedSet
而不添加我想用来分隔arrays
的密钥时,它不起作用,因为对象不相同,基本上,我需要检查是否{{1}如果其他键不同则无关紧要。
这是初始代码:
objectId
所以我创建了两个for (PFObject *objeto in objects) {
PFObject *exercicio = objeto[@"exercicio"];
NSString *string = exercicio.objectId;
NSNumber *nota = objeto[@"nota"];
[exercicios addObject:string];
[notas addObject:nota];
并存储了我需要的值。当我在此之后NSMutableArrays
数组时,它们是完全有序的,这意味着log
与NSString
属于另一个index
NSNumber
array
}。到现在为止还挺好。
现在,当我使用字符串创建NSCountedSet
时,它会更改顺序。
NSCountedSet *countedExercicios = [[NSCountedSet alloc] initWithArray:exercicios];
。
我的目标是sum
与特定对象相关的NSNumbers
,因此,当订单发生变化时,我会失去两个arrays
之间的联系。
我不确定我能做些什么来解决这个问题,或者即使有不同的方法来实现我需要的结果。
答案 0 :(得分:1)
您可以创建NSDictionary并将其添加到数组中。你将只有一个数组,你不会失去连接,你可以使用objectId作为键,NSNumber作为值:
for (PFObject *objeto in objects) {
PFObject *exercicio = objeto[@"exercicio"];
NSString *string = exercicio.objectId;
NSNumber *nota = objeto[@"nota"];
NSDictionary *dict = @{string: nota};
[newArray addObject: dict];
}
当您需要获取所有密钥(objectId)时,您可以使用NSPredictate。
希望这个帮助