Вот моя проблема: я загружаю plist в NSArray. Я не объявляю ни одного NSDictionary в моем приложении.
Теперь у меня есть UIPickerView. Я хочу, чтобы он был заполнен из указанного NSArray, который является приватным членом моего контроллера представления Мой сборщик требует реализации метода titleForRow. Если я реализую это так, это вылетает:
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
return [airportList objectAtIndex:row];
}
Однако, если я реализую это так, это работает:
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
NSDictionary *stupid = (NSDictionary *)airportList;
NSString *airPortName = [stupid objectForKey:[NSString stringWithFormat:@"Item%d",row]];
NSLog(@"%@",airPortName);
return airPortName;
}
Почему мой NSArray автоматически преобразуется в NSDictionary?
Редактировать *:
Вот как я генерирую свой NSArray из plist:
-(NSArray *)createAirportList
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"AirportList" ofType:@"plist"];
NSData *plistAirportNames = [NSData dataWithContentsOfFile:path];
NSString *error;
NSPropertyListFormat format;
NSArray *airportNames = [NSPropertyListSerialization propertyListFromData:plistAirportNames mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&error];
if(!airportNames)
{
NSLog(@"Could not read the airport name. Error:%@",error);
}
return airportNames;
}
Мой список просто ключевой: Item0 string "blah". Так что да, это словно словарь, но почему я не могу использовать созданный мной объект NSArray? Что с автонастройкой?