У меня есть TableView, который строит и рисует нормально, но затем падает при прокрутке представления. Я прошел через отладчик, и кажется, что мои переменные уровня класса как-то перезаписываются, поэтому они больше не существуют, когда сновазывается названиеForHeaderInSection. Очень странно, что, если я заменю код:UITableView падает при прокрутке
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
NSString *sectionTitle = [favouritesDataSections objectAtIndex:section];
return sectionTitle;
}
с:
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
NSString *sectionTitle = @"Test";
return sectionTitle;
}
Это по-прежнему падает, но на этот раз отладчик списки не NSString при наведении курсора мыши на переменную sectionTitle.
Это код, который я использовал для создания представления и настроить переменный уровень класса:
- (void)loadView {
[super loadView];
CGRect tableSize = CGRectMake(0,0,320,460);
UITableView *favouritesTableView = [[UITableView alloc] initWithFrame:tableSize style:UITableViewStylePlain];
favouritesTableView.autoresizingMask = (UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight);
favouritesTableView.dataSource = self;
favouritesTableView.delegate = self;
favouritesTableView.rowHeight = 52;
[self.view addSubview:favouritesTableView];
}
- (void)viewDidLoad {
[super viewDidLoad];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
// Get the full path of the favourites plist
NSString *filename = [documentsDirectory stringByAppendingPathComponent:@"Favourites.plist"];
// Initialise Dictionary and array
favouritesDataAll = [[NSMutableDictionary alloc] init];
favouritesDataSections = [[NSArray alloc] init];
NSDictionary *dict = [[[NSMutableDictionary alloc] initWithContentsOfFile:filename] retain];
favouritesDataAll = dict;
[dict release];
favouritesDataSections = [favouritesDataAll allKeys];
}
Я буду абсолютно сумасшедшим пытаюсь отслеживать это вниз - провел 2 дня на нем до сих пор так будет внешне благодарен за любую помощь.
С наилучшими пожеланиями
Dave
ОК, если я ставлю на сохранение в конце строки UITableView она работает в течение приблизительно 3 или четыре раза, а затем консоль дает: *** - [длина UISwipeGestureRecognizer]: непризнанный селектор направил к экземпляру 0x43325d0 –
и также: *** Завершение приложения из-за неперехваченного исключения «NSRangeException», причина: «*** - [NSCFArray objectAtIndex:]: index (0) за пределами границ (0) ' –
Хорошо, я закрою. Думаю, у меня сохранилась красная сельдь. Это потому, что я заменил titleForHeaderInSection на @ "Test", это сработало некоторое время. Ошибка консоли: *** Завершение приложения из-за неперехваченного исключения «NSRangeException», причина: «*** - [NSCFArray objectAtIndex:]: index (57744) за пределами границ (2) ' –