拉斯厄尔高福 2020-08-03
#pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" [myObj performSelector:mySelector withObject:name]; #pragma clang diagnostic pop
注意我们是如何在相关代码上下文中用 pragma 停用 -Warc-performSelector-leaks 检查的。这确保我们没有全局禁用。如果全局禁用,可能会导致错误。
全部的选项可以在 The Clang User‘s Manual 找到并且学习。
这对表明你一个定义但是没有使用的变量很有用。大多数情况下,你希望移除这些引用来(稍微地)提高性能,但是有时候你希望保留它们。为什么?或许它们以后有用,或者有些特性只是暂时移除。无论如何,一个消除这些警告的好方法是用相关语句进行注解,使用 #pragma unused():
- (void)giveMeFive { NSString *foo; #pragma unused (foo) return 5; }
现在你的代码不用任何编译警告了。注意你的 pragma 需要标记到未定义的变量之下。
摘录来自: 极客学院. “Programming with Objective-C。” Apple Books.