У меня возникла странная проблема. Я пытаюсь вызвать void
функцию программно, функция void
является seguent:Невозможно вызвать функцию (void) программно
- (void)expView:(ExpandableTableView *)expView didExpandAtIndex:(NSInteger)index {
/* CODE HERE */
}
так, если я правильно понимаю, эта функция принимает два параметра: expView
, класса ExpandableTableView
и index
из NSInteger
типа , Если вам интересно, что такое ExpandableTableView
, это подкласс UITableView
, импортированный из this Проект GitHub, который я использую для создания UITableView
с расширяемой ячейкой в моем проекте.
Проблема у меня в том, что я не могу назвать эту функцию недействительным программно с помощью:
[self expView:nameOfTheExpandableTableView didExpandAtIndex:1];
И я не могу понять, почему. Кроме того, UITableView, которые мне нужно расширить программно не был создан с помощью раскадровки, поэтому я назначил его «выход» с for in
цикла в viewDidLoad
Это мой код:
@interface ViewController() {
ExpandableTableView *customizedTableView;
}
- (void)viewDidLoad {
[super viewDidLoad];
/* HERE I SEARCH FOR ALL EXPANDABLETABLEVIEW(s) */
for (customizedTableView in [self.view subviews]) {
if ([customizedTableView isKindOfClass:[ExpandableTableView class]]) {
[self expView:customizedTableView shouldExpandAtIndex:1];
}
}
}
- (BOOL)expView:(ExpandableTableView *)expView shouldExpandAtIndex:(NSInteger)index {
/* THIS FUNCTION IS CALLED JUST BEFORE THE VOID ONE */
return index;
}
- (void)expView:(ExpandableTableView *)expView didExpandAtIndex:(NSInteger)index {
}
Код работает, фактически, если я пытаюсь использовать точки останова, чтобы проверить, что все вызвано [даже функция void], но ничего не происходит.
Вы можете мне помочь?
В чем проблема? Вы называете, что вы не можете вызвать функцию, но последнее предложение говорит, что оно вызывается. – rdelmar
Так что проблем с компиляцией и viewDidLoad не вызывается? – Wain
@Wain Да, нет компиляции проблем, и viewDidLoad правильно называется – Aluminum