将Objective-C指针转换为' SEL' ARC不允许

时间:2015-07-04 02:58:52

标签: ios objective-c automatic-ref-counting pull-to-refresh

我试图在iOS中为我的UITableView实现pull-to-refresh。除了我无法正确执行刷新操作所需的操作外,实现几乎已完成。

    [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中启动)会出现以下错误:

  

将Objective-C指针投射到&#39; SEL&#39;不允许使用ARC

如果我删除前面的(SEL)转换,这次我收到以下错误:

  

将Objective-C指针隐式转换为&#39; SEL&#39;不允许使用ARC

另一个警告:

  

不兼容的指针类型发送&#39; id&#39;参数f类型&#39; SEL&#39;

如果能够使用两个参数调用我的方法,我怎样才能使用ARC?

1 个答案:

答案 0 :(得分:4)

这不是目标/行动的工作原理,你需要传递一个选择器,它是文档中列出的一种形式。

您应该执行以下操作:

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

然后让refresh方法调用您的方法来刷新该数据:

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