警告:未实现的Selector localizedCaseInsensitiveCompare

DRV*_*Vic 8 cocoa objective-c xcode4.2

我在以下行收到了主题警告:

   NSSortDescriptor * sort = [ [NSSortDescriptor alloc] initWithKey:@"name"
                                 ascending:YES
                                  selector:@selector(localizedCaseInsensitiveCompare:) ];
Run Code Online (Sandbox Code Playgroud)

而且我并不总是得到那个警告.也就是说,警告刚刚开始出现,可能是由于编译设置的变化.我在这里看不到拼写错误.这看起来(对我来说)就像我在许多例子中看到的代码一样.我没有看到运行时异常.但我不喜欢警告.谁见过这个?有什么想法触发它吗?

Rob*_*ier 14

你打开了-Wselector吗?(也称为"选择器的多个定义类型".)此警告与Foundation不兼容,您不应该打开它.它的存在是因为它在"纯粹的"Objective-C中确实有意义.只是没有任何Objective-C你可能会写(即任何使用Cocoa的东西).

您想要的警告-Wundeclared-selector,也称为"未声明的选择器".

它有点过时了,但我编译了一个完整的GCC警告列表,以及是否在我的Shared.xcconfig文件中打开或关闭它们.还有一个由Jean-David Gadina编写非常有用的动物,它更新一点.