我试图在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?
答案 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>"];
}