[英]Error : Implicit conversion of an Objective-C pointer to 'SEL _Nonnull' is disallowed with ARC in Selector Of NSTimer
[英]Cast of an Objective-C pointer to 'SEL' is disallowed with ARC
我正在尝试为iOS中的UITableView实现“拉动刷新”。 除了无法正确执行刷新操作将要执行的操作外,该实现几乎完成了。
[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
启动)给出以下错误:
ARC不允许将Objective-C指针强制转换为“ SEL”
如果我移除前面的(SEL)
铸件,这一次会出现以下错误:
ARC不允许将Objective-C指针隐式转换为“ SEL”
另一个警告:
不兼容的指针类型将'id'发送到参数f类型'SEL'
如何在使用两个参数调用我的方法的同时与ARC配合使用?
这不是目标/动作的工作方式,您需要向其传递一个选择器,该选择器是其在文档中列出的形式之一。
您应该执行以下操作:
[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>"];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.