2015-07-04 2 views
0

Я пытаюсь реализовать pull-to-refresh для моего UITableView в iOS. Реализация почти завершена, за исключением того, что я не могу правильно выполнить действие, которое будет выполнено для операции обновления.Листинг Objective-C указатель на 'SEL' не разрешен ARC

[self.refreshControl addTarget:self 
         action:(SEL)[self performSelector:@selector(fetchPhotoListWith:Using:) 
              withObject:@"https://api.instagram.com/v1/users/self/feed?access_token=" 
              withObject:@"<my Instagram ID>"] 
       forControlEvents:UIControlEventValueChanged]; 

Приведенный выше код (начатый в viewDidLoad) дает следующее сообщение об ошибке:

Cast of an Objective-C pointer to 'SEL' is disallowed with ARC

Если удалить (SEL) отливку спереди, на этот раз я получаю следующее сообщение об ошибке:

Implicit conversion of an Objective-C pointer to 'SEL' is disallowed with ARC

с другим предупреждением:

Incompatible pointer types sending 'id' to parameter f type 'SEL'

Как я могу хорошо играть с ARC, имея возможность вызвать мой метод с двумя аргументами?

ответ

4

Это не так, как работает цель/действие, вам необходимо передать ему селектор, который является одной из форм, которые перечислены в документации.

Вы должны сделать что-то вроде:

[self.refreshControl addTarget:self action:@selector(refresh) forControlEvents:UIControlEventValueChanged]; 

А затем сделать метод обновления вызова методы, чтобы обновить эти данные:

- (void)refresh { 
    [self fetchPhotoListWith:@"https://api.instagram.com/v1/users/self/feed?access_token=" 
         using:@"<My Instagram API Token>"]; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^