У меня есть простое приложение для iPhone, которое я изучаю, и я хочу, чтобы переменная экземпляра называлась urlLists
, которая является NSDictionary
Я объявил это так:
@interface MyViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate>{
IBOutlet UIPickerView *pickerView;
NSMutableArray *categories;
NSDictionary *urlLists;
}
@property(retain) NSDictionary *urlLists;
@end
и в реализации:
@implementation MyViewController
@synthesize urlLists;
...
- (void)viewDidLoad {
[super viewDidLoad];
categories = [[NSMutableArray alloc] init];
[categories addObject:@"Sport"];
[categories addObject:@"Entertainment"];
[categories addObject:@"Technology"];
[categories addObject:@"Political"];
NSArray *objects = [NSArray arrayWithObjects:@"value1", @"value2", @"value3", @"value4", nil];
urlLists = [NSDictionary dictionaryWithObjects:objects forKeys:categories];
for (id key in urlLists) {
NSLog(@"key: %@, value: %@", key, [urlLists objectForKey:key]);
}
}
...
@end
И, это все работает до здесь.
Я добавил UIPicker в свое приложение, и когда я выбираю один из элементов, я хочу зарегистрировать выбранный элемент и связанную с ним запись в моем словаре.
-(void) pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger) component {
for (id key in self.urlLists) {
NSLog(@"key: %@, value: %@", key, [urlLists objectForKey:key]);
}
}
но я получаю старую ошибку EXC_BAD_ACCESS ...
Я знаю, что мне не хватает чего-то маленького, но что?
Спасибо
EDIT ::
Только что исправил, я добавил retain
после dictionaryWithObjects
Но я не знаю, зачем мне нужно, dictionaryWithObjects
не создавать объект автоматического выпуска?