У меня была такая же ошибка, и я обнаружил следующее:
При использовании кода
[self.refreshControl addTarget:self action:@selector(yourRefreshMethod:) forControlEvents:UIControlEventValueChanged];
Вы можете подумать, что он ищет селектор:
* +1007 *
Но на самом деле он ищет селектор:
- (void)yourRefreshMethod:(id)sender{
(your code here)
}
Этот селектор не существует, поэтому вы получите сбой.
Вы можете изменить селектор для получения (id) отправителя, чтобы устранить ошибку.
Но что, если у вас есть другие функции, которые вызывают функцию обновления без предоставления отправителя? Вам нужна одна функция, которая работает для обоих. Простое решение - добавить еще одну функцию:
- (void)yourRefreshMethodWithSender:(id)sender{
[self yourRefreshMethod];
}
А затем измените код обновления выпадающего меню, чтобы вместо этого вызывать этот селектор:
[self.refreshControl addTarget:self action:@selector(yourRefreshMethodWithSender:) forControlEvents:UIControlEventValueChanged];
Я также прохожу курс по Stanford iOS для старого Mac, который не может быть обновлен до новейшей версии Mac OSX. Так что я все еще строю для iOS 6.1, и это решило проблему для меня.