Я застрял на этом в течение нескольких дней, и каждый раз, когда я возвращаюсь к нему, я продолжаю делать свой код все более и более запутанным для себя, смеется. Вот что я пытаюсь сделать. У меня есть таблица с списком сборов, я нажимаю на одну и отображаю модель с деталями сборов. Теперь, когда модель представлена, создается объект, который извлекает список пользователей XML, анализирует его и возвращает NSMutableArray через пользовательский делегат. Затем у меня есть кнопка, которая представляет всплывающее окно выбора, когда представление всплывающего окна вызывается, пользовательский массив используется в вызове initWithArray для представления всплывающего окна. Я знаю, что данные в массиве верны, но когда вызывается [pickerUsers count], я получаю EXC_BAD_ACCESS. Я предполагаю, что это проблема памяти / владения, но ничто, кажется, не помогает. Любая помощь будет оценена.
Соответствующие фрагменты кода:
Charge Popover (представление модели деталей зарядки):
@interface ChargePopoverViewController .....
NSMutableArray *pickerUserList;
@property (nonatomic, retain) NSMutableArray *pickerUserList;
@implementation ChargePopoverViewController
@synthesize whoOwesPickerButton, pickerUserList;
- (void)viewDidLoad {
JEHWebAPIPickerUsers *fetcher = [[JEHWebAPIPickerUsers alloc] init];
fetcher.delegate = self;
[fetcher fetchUsers];
}
-(void) JEHWebAPIFetchedUsers:(NSMutableArray *)theData {
[pickerUserList release];
pickerUserList = theData;
}
- (void) pickWhoPaid: (id) sender {
UserPickerViewController* content = [[UserPickerViewController alloc] initWithArray:pickerUserList];
UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:content];
[popover presentPopoverFromRect:whoPaidPickerButton.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
content.delegate = self;
}
Контроллер представления выбора пользователя
@interface UserPickerViewController .....
NSMutableArray *pickerUsers;
@property(nonatomic, retain) NSMutableArray *pickerUsers;
@implementation UserPickerViewController
@synthesize pickerUsers;
-(UserPickerViewController*) initWithArray:(NSMutableArray *)theUsers {
self = [super init];
if ( self ) {
self.pickerUsers = theUsers;
}
return self;
}
- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component {
// Dies Here EXC_BAD_ACCESS, but NSLog(@"The content of array is%@",pickerUsers); shows correct array data
return [pickerUsers count];
}
Я могу предоставить дополнительный код, если это может помочь. Заранее спасибо.