我在下一行收到主题警告:
NSSortDescriptor * sort = [ [NSSortDescriptor alloc] initWithKey:@"name"
ascending:YES
selector:@selector(localizedCaseInsensitiveCompare:) ];
我并不总是得到那个警告。也就是说,警告刚刚开始出现,可能是由于编译设置的变化。我在这里看不到拼写错误。这看起来(对我来说)就像我在许多例子中看到的代码一样。我没有看到运行时异常。但我不喜欢警告。谁见过这个?有什么想法触发它吗?
答案 0 :(得分:14)
你开启-Wselector
了吗? (也称为“选择器的多个定义类型”。)此警告与Foundation不兼容,您不应该打开它。它的存在是因为它在“纯粹的”Objective-C中确实有意义。只是没有任何Objective-C你可能会写(即任何使用Cocoa的东西)。
您想要的警告是-Wundeclared-selector
,也称为“未声明的选择器”。
它有些过时了,但我编制了一份GCC警告的完整列表,以及是否在Shared.xcconfig文件中打开或关闭它们。还有一个very helpful bestiary compiled by Jean-David Gadina更新一点。