gpt4 book ai didi

objective-c - 按照他们用 NSDictionary 添加的顺序获取值

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:24:03 24 4
gpt4 key购买 nike

我想从字典中填充一个选择器,我有一本字典

NSMutableArray* type1names = [NSMutableArray arrayWithObjects:@"--",@"AA",@"AB",@"BA",@"BB",@"BC",@"CB",@"CC",@"CD",@"DC",@"DD",@"FF",nil];
NSMutableArray* type1points = [NSMutableArray arrayWithObjects:@"-",@"4",@"3.7",@"3.3",@"3.0",@"2.7",@"2.3",@"2.0",@"1.7",@"1.3",@"1",@"0", nil];
NSMutableDictionary *type1 = [[NSMutableDictionary alloc] initWithObjects:type1points forKeys:type1names];

初始化是这样的。当我用下面的代码将它们放入字典中时,当我试图取回它们时,就会出现问题。

- (NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
YOHAppDelegate *app = [UIApplication sharedApplication].delegate;

NSString *key = [[app.pointsDictionary allKeys] objectAtIndex:row];
return key;
}

他们从字典中无序返回。不是随机的,总是在相同的位置,但没有任何逻辑系统。

有没有办法实现这个,或者我应该为此使用多个数组?

最佳答案

A Hot Licks 说,NSDictionary 不保存顺序。然而Matt Gallagher shows how to create an OrderedDictionary通过子类化 NSMutableDictionary。

另一方面,您应该认真对待他的警告。但某种程度上,他的子类化为我们提供了一个模式,可以在没有子类化的情况下使用:你可以定义一个类,它包含一个字典和一个数组,但继承自 NSObject。定义一个 setObjectForKey: 方法,它转发到 NSDictionary 并将对象添加到数组中(只是,如果它不存在于字典中)。添加方法 objectForKey:,转发到字典和 objectAtIndex:,转发到数组。

关于objective-c - 按照他们用 NSDictionary 添加的顺序获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8829119/

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