GCC -Wselector
和-Wundeclared-selector
选项的说明使它们听起来像是一个很棒的编程工具,可以防止Objective-C @selector()
表达式中的拼写错误。
但是,在我的代码库上启用它们后,我收到如下警告:
Unimplemented selector 'reloadData'
指向这样的行:
[self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];
这行代码在我们的代码库中相当常见。数据是异步加载的,一旦加载,上面的代码行用于指示UITableView
重新加载(在主线程上,因为从后台线程调用UIKit是一个坏主意)。
我的问题是多部分:
UITableView
来重新加载其数据?UITableView.h
选择器在reloadData
中明确声明时,为什么海湾合作委员会会对此发出警告?答案 0 :(得分:3)
是的,我是-Wundeclared-selector
的粉丝。我没有看到这个问题突然出现。您在此特定文件(或.pch中)中#import <UIKit/UIKit.h>
了吗?我无法在-Wundeclared-selector
的简单程序中重现此问题。
tableView
IBOutlet viewDidLoad
将reloadData
更改为reloadDat
,我收到警告(正如预期的那样):
Undeclared selector 'reloadDat'
你说你得到的是“未实现的选择器'reloadData'。”这真的是警告,还是你打算输入“Undeclared?”