繁体   English   中英

ARC不允许将Objective-C指针强制转换为“ SEL”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM