我有一个NSArray
,我需要从两个键中获取数据并放在一个NSMutableDictionary
中。一个键具有string
值,而其他NSNumber
值。当我尝试创建NSCountedSet
而不添加要用于分隔arrays
的键时,它不起作用,因为对象不相同,基本上,我需要检查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
之间的连接。我不确定该如何解决这个问题,甚至不确定是否有其他方法可以达到所需的结果。
最佳答案
您可以创建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。
希望有帮助
关于ios - 在NSCountedSet中保持NSArray原始顺序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21089141/