Проверьте, определен ли метод протокола - PullRequest
2 голосов
/ 08 ноября 2011

UIScrollViewDelegate имеет новый удивительный метод:

// called on finger up if the user dragged. velocity is in points/second. targetContentOffset may be changed to adjust where the scroll view comes to rest. not called when pagingEnabled is YES
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView 
                     withVelocity:(CGPoint)velocity 
              targetContentOffset:(inout CGPoint *)targetContentOffset __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0)

Однако, это ТОЛЬКО доступно в iOS 5 .Для iOS без этого метода я бы хотел использовать пейджинг в качестве альтернативы.Таким образом, у меня осталось два варианта:

  1. Проверьте версию iOS, , которую я не знаю, как сделать , или
  2. Проверьте, неэтот метод определен для протокола UIScrollViewDelegate, , который я также не знаю, как это сделать .

Я бы предпочел как-то проверить, еслиметод определен в протоколе, а не проверяет версию iOS.Обратите внимание, что выполнение проверки respondsToSelector: не будет адекватным, поскольку мой класс, реализующий протокол, всегда будет его определять.

1 Ответ

4 голосов
/ 08 ноября 2011
BOOL isAtLeastIOS5 = [[[UIDevice currentDevice] systemVersion] floatValue] >= 5.0;

См. Как проверить протокол для метода? , чтобы проверить протокол для данного метода.

...