Вы не должны полиморфно , называют виртуальные методы от конструктора. Вместо этого можно назвать их после конструкции объекта.
Ваш код может быть ре, записанным следующим образом
struct base {
virtual const int value() const {
return 0;
}
base() {
/* std::cout << value() << std::endl; */
}
virtual ~base() {}
};
struct derived : public base {
virtual const int value() const {
return 1;
}
};
int main(void) {
derived example;
std::cout << example.value() << std::endl;
}
Что ж, если вы хотите выполнить действие после срабатывания scrollToRowAtIndexPath.
- (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated
Вам нужно создать указатель CAAnimation, например
CAAnimation *myAnimation;
Затем установите delgate на себя
myAnimation.delegate = self;
. После этого должны активироваться следующие методы делегирования, где вы можете поместить свой код:
- (void)animationDidStart:(CAAnimation *)theAnimation
- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag