Пример:
<dict>
<key>Feb 7, 2000</key>
<array>
<string>7</string>
<string>8</string>
</array>
<key>Jan 27, 2001</key>
<array>
<string>8</string>
<string>7</string>
</array>
</dict>
Код:
NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
for(id key in dict) {
NSLog(@"First:%@ Second:%@", [[dict objectForKey:key] objectAtIndex:0], [[dict objectForKey:key] objectAtIndex:1]);
}
Выход:
First:7 Second:8
First:8 Second:7
РЕДАКТИРОВАТЬ (ответ на комментарий)
Сначала вам нужно определить ключи в NSMutableDictionary
.
Загрузите файл .plist
, выполните цикл и добавьте ключи в NSMutableArray
.
NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
NSMutableArray *keys = [[NSMutableArray alloc] init];
for(id key in dict) [keys addObject:[NSString stringWithFormat:@"%@",key]];
Убедитесь, что массив может быть доступен с помощью UIPickerView
.
UIPickerView
должен иметь возможность получать ключи следующим образом:
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;
{
return [keys objectAtIndex:row];
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;
{
return [keys count];
}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
{
return 1;
}
Наконец, обновите UILabel
следующим образом:
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
theLabel.text = [NSString stringWithFormat:@"First:%@ Second:%@",
[[dict objectForKey:[keys objectAtIndex:row]] objectAtIndex:0],
[[dict objectForKey:[keys objectAtIndex:row]] objectAtIndex:1]];
}
UIPickerView
теперь содержит следующие строки:
Feb 7, 2000
Jan 27, 2001
Когда, например, выбрано «27 января 2001», UILabel
показывает:
First:8 Second:7