指向'SEL'的C指针不允许使用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启动)给出了以下错误:

一个Objective-C指向“SEL”的指针不允许使用ARC

如果我删除(SEL)在前面的铸件,这次我得到以下错误:

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

另有警告:

将'id'发送给参数f的类型'SEL'不兼容的指针类型

我怎样才能与ARC玩好,同时能够用两个参数调用我的方法?


这不是目标/操作的工作方式,您需要将它传递给它在文档中列出的其中一种形式的选择器。

你应该这样做:

[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>"];
}
链接地址: http://www.djcxy.com/p/44919.html

上一篇: C pointer to 'SEL' is disallowed with ARC

下一篇: Can't seem to cast from NSString* to CFString* using ARC