Может кто-то пожалуйста, объясните мне, почему мой сборщика не показывает каких-либо данных, когда я загрузить из списка свойствОтображение данных в подборщика
Это PLIST:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>England</key>
<array>
<string>Chelsea</string>
<string>Arsenal</string>
</array>
<key>Spain</key>
<array>
<string>Barca</string>
<string>Real</string>
</array>
</dict>
</plist>`
Это часть viewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
NSBundle *bundle = [NSBundle mainBundle];
NSURL *plistFile = [bundle URLForResource:@"myPListFile" withExtension:@"plist"];
NSDictionary *dictionary = [NSDictionary dictionaryWithContentsOfURL:plistFile];
self.countryClubs = dictionary;
NSString *selectedCountry = [self.countries objectAtIndex:0];
NSArray *array = [countryClubs objectForKey:selectedCountry];
self.clubs = array;
}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 2;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
if (component == 0)
return [self.countries count];
return [self.clubs count];
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row
forComponent:(NSInteger)component {
if (component == 0)
return [self.countries objectAtIndex:row];
return [self.clubs objectAtIndex:row];
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row
inComponent:(NSInteger)component {
if (component == 0) {
NSString *selectedCountry = [self.countries objectAtIndex:row];
NSArray *array = [countryClubs objectForKey:selectedCountry];
self.clubs = array;
[picker selectRow:0 inComponent:1 animated:YES];
[picker reloadComponent:1];
}
}
в viewController.hi получил
@property (nonatomic, strong)NSDictionary *countryClubs;
@property (nonatomic, strong)NSArray *countries;
@property (nonatomic, strong)NSArray *clubs;
и viewController.mi получил:
@synthesize countryClubs=_countryClubs;
@synthesize countries=_countries;
@synthesize clubs=_clubs;
Если кто-нибудь может объяснить, почему это сборщика пустым я оценил бы его очень много, кажется, что PLIST не загружен, потому что если я пишу:
self.clubs = [[NSArray alloc] initWithObjects:@"milimetar",@"centimetar",@"metar",@"kilometar",@"inc",@"stopa",@"jard",@"milja", nil];
сборщик показывает данные.
Где установить 'self.countries'? Ваш файл действительно назван * точно * 'myPListFile.plist'? Обратите внимание на верхний регистр 'L' после' P'. – rmaddy
Вы подтвердили, что наборы 'делегат' и' dataSource' сборщика действительно установлены? –
да, это имя myPListFile.plist, и оно находится в каталоге Supporting Files. – user3194296