我的iPhone应用程序中有以下代码行:
[[sections allValues] sortedArrayUsingSelector:@selector(sortSectionsBySectionName:)];
生成Undeclared selector
警告。
数组中的所有对象都实现了sortSectionsBySectionName:
,因此一切都按预期工作。但是,我想摆脱警告。
有没有办法告诉编译器,对象确实会实现选择器?铸造或类似的东西?
任何建议将不胜感激!
答案 0 :(得分:1)
使用它的方法应该是公开显示的方法。这通常意味着:
sortSectionsBySectionName:
添加到数组中对象的.h文件中,并#import
此控制器中的.h文件sortSectionsBySectionName:
方法一旦编译器可以看到你尝试使用它的范围内存在方法,你就应该很好。
或者,要求编译器忽略它:
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wundeclared-selector"
[[sections allValues] sortedArrayUsingSelector:@selector(sortSectionsBySectionName:)];
#pragma clang diagnostic pop
但要注意这个(以及类别方法)都可以隐藏在运行时会导致问题的问题......