UIPickerview用于选择员工和ID

时间:2014-08-27 13:05:56

标签: ios nsdictionary uipickerview

我有一本包含所有员工ID及其姓名的字典。现在我希望用户使用UIPickerView选择名称。问题是:如果我对字典的值(名称)进行排序,我如何知道哪个名称与其ID相对应,因为字典中可能存在相同的名称。

e.g。

{"0001", "John Doe"}
{"0002", "John Doe"}
{"0003", "Jane Doe"}
{"0004", "Jane Alpha"}
{"0005", "Jane Doe"}

因此,如果我使用所有值对结果数组进行排序并在UIPickerView中显示并选择第三行(Jane Doe),那么如何才能获得相应的ID?

3 个答案:

答案 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;