Я действительно не знаю, является ли то, что я делаю, правильным способом сделать это.Сейчас, кажется, он работает до тех пор, пока не достигнет определенной точки с сообщением EXC_BAD_ACCESS.
Я опишу, что я делаю, как лучше и с наиболее важными деталями, которые я могу сказать: у меня есть CalendarViewController, которыйнаследует UIViewController, который загружается из файла .xib (CalendarViewController.xib).Класс содержит UIView с именем contentView, который я создал и который инициализирую с помощью другого файла пера, основанного на классе, который также унаследован от UIViewController:
- (void)viewDidLoad {
[super viewDidLoad];
calendarView = [[CalendarView alloc] initWithNibName:@"CalendarView" bundle:nil];
[contentView addSubview:calendarView.view];
}
(calendarView - это класс, наследующий UIViewController, а viewDidLoad от CalendarViewController..
CalendarView.xib имеет UITableViewController с соответствующим ему UITableView. Этот контроллер табличного представления связан с CalendarTableController, для которого я также сгенерировал для него файл .xib.
Все создается простоверно (очевидно), но происходит сбой где-то очень неожиданно. CalendarTableController также реализует DateLoaderDelegate, который загружает информацию из xml по внешнему URL.
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
// When the data has all finished loading, we set a copy of the
// loaded data for us to access. This will allow us to not worry about
// whether a load is already in progress when accessing the data.
self.lastLoadedMatchXMLData = [self.matchXMLData copy];
// Make sure the _delegate object actually has the xmlDidFinishLoading
// method, and if it does, call it to notify the delegate that the
// data has finished loading.
if ([_delegate respondsToSelector:@selector(xmlDidFinishLoading)])
{
[_delegate xmlDidFinishLoading];
}
}
Приложение получает к этомуточка без проблем. _delegate содержит правильный объект (CalendarTableController, который реализует DateLoaderDelegate). Но когда он прибывает в строку:
if ([_delegate respondsToSelector:@selector(xmlDidFinishLoading)])
, он падает с tEXC_BAD_ACCESS, я действительно не знаю причину, если я смотрю на отладчик, сбой не происходит ни в одном из моих классов, так как любой из них появляется в стеке выполнения.URLConnectionClient, кажется, генерирует его, но я не знаю, почему.Загрузка xml работала раньше, прежде чем я переставил ViewControllers для работы, как я описал сейчас.
Есть идеи?