关于 pragma使用

Posted coderydw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于 pragma使用相关的知识,希望对你有一定的参考价值。

如果你知道你的代码不会导致内存泄露,你可以通过加入这些代码忽略这些警告

#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.

以上是关于关于 pragma使用的主要内容,如果未能解决你的问题,请参考以下文章

#pragma hdrstop

使用 INLINABLE pragma 的缺点

关于结构体内存对齐方式的总结(#pragma pack()和alignas())

关于js----------------分享前端开发常用代码片段

关于代码片段的时间复杂度

oc-09-#pragma mark指令的使用,用于查找代码