我有一本包含所有员工ID及其姓名的字典。现在我希望用户使用UIPickerView选择名称。问题是:如果我对字典的值(名称)进行排序,我如何知道哪个名称与其ID相对应,因为字典中可能存在相同的名称。
e.g。
{"0001", "John Doe"}
{"0002", "John Doe"}
{"0003", "Jane Doe"}
{"0004", "Jane Alpha"}
{"0005", "Jane Doe"}
因此,如果我使用所有值对结果数组进行排序并在UIPickerView中显示并选择第三行(Jane Doe),那么如何才能获得相应的ID?
答案 0 :(得分:1)
1-如果要对字典值进行排序,可以使用唯一名称构造字典值,就像使用键一样。
2-如果你有简单字典就无法做到这一点,那么让用户从3中选择 John Doe 。
3-如果在选择器中显示时存在重复值,则应避免重复名称并显示一次。
答案 1 :(得分:0)
您可以选择字典
NSDictionary *aDict = [yourArrayName objectAtIndex:[self.yourPickerName selectedRowInComponent:0]];
NSLog(@"%@", aDict);
答案 2 :(得分:0)
我没有为Name和ID创建两个单独的数组,而是创建了一个具有这两个属性的自定义对象“Person”(由iDev建议)。我创建了一个新的Person对象,并将每个对象添加到一个数组中。
然后我使用
对该数组进行了排序sortedArrayUsingComparator:^ NSComparisonResult(id obj1,id obj2)
然后在titleForRow中我返回该人的姓名:
((Person *)[mySortedArray objectAtIndex:row])。Name;