От plist до UIPickerView

У меня есть список, который я хочу получить в обзоре uipicker.

Я могу вывести содержимое plist в консоли, используя:

    // Path to the plist (in the application bundle)
    NSString *path = [[NSBundle mainBundle] pathForResource:
                                        @"loa" ofType:@"plist"];

    // Build the array from the plist  
    NSMutableArray *array2 = [[NSMutableArray alloc] initWithContentsOfFile:path];

    // Show the string values  
    for (NSString *str in array2)
            NSLog(@"--%@", str);

что мне нужно выяснить, это как получить этот контент в UIPickerView.

Я попробовал следующее:

        arrayPicker = [[NSMutableArray alloc] initWithArray:array2];

, но получите ошибку: exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary isEqualToString:]: unrecognized selector sent to instance

спасибо за любую помощь

2 ответа

Решение

Что вы должны сделать, это:

NSMutableDictionary *myDataDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
NSLog(@"MyDict:%@",[myDataDictionary description]);

Ваш файл plist является NSDictionary;

Вы должны использовать сборщик делегатов / источник данных

Во-первых, сделайте массив свойством, загруженным в viewDidLoad, то есть:

-(void)viewDidLoad {
NSString *path = [[NSBundle mainBundle] pathForResource:
                                        @"loa" ofType:@"plist"];
self.myArray = [[NSArray alloc] initWithContentsOfFile:path];
}

ЗАТЕМ

Создайте свой класс для делегата / источника данных и подключите его в IB.

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 1;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
return [myArray count];
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
return [myArray objectAtIndex:row];
}

Какова структура вашего списка? - Это просто плоский массив, или массив, назначенный на одноклавишный диктант, или диктат с парами ключ / объект...

Другие вопросы по тегам