在Xcode中使用#pragma标记的目的是什么?它们在.m文件中的位置重要吗?一些#pragma应该排在所有其他#之前吗?

他们必须到场吗? 可以添加新的标记吗?为什么会这样?它的原因是什么? 去掉记号有什么害处吗?有人想过吗?


当前回答

Use:

#pragma mark - NSSecureCoding

“pragma”的主要目的是供开发人员参考。

您可以很容易地在成千上万的代码行中找到一个方法/函数。

Xcode + 11:

顶部标记线

// MARK: - Properties

在顶部和底部标记线

// MARK: - Properties -

只在底部划线

// MARK: Properties -

其他回答

#pragma标记指令出现在Xcode的菜单中,用于直接访问方法。它们对项目完全没有影响。

例如,在Xcode 4中使用它将使这些项目直接出现在跳转栏中。

有一个特殊的pragma标记——它创建了一行。

当我们有一个大的/长的类,比如超过100行代码时,我们不能在监视器屏幕上看到所有内容,因此我们不能看到类的概述(也称为文档项)。有时我们想要查看我们类的概述;它的所有方法、常量、属性等一目了然。你可以在Xcode中按Ctrl + 6来查看你的类的概述。你会看到一个弹出窗口,也就是跳跃栏。

默认情况下,这个跳转栏没有任何桶/节。这只是一个长长的清单。(虽然我们可以在跳转栏出现时开始输入,它会在跳转栏项中搜索。)这里需要pragma mark。

如果你想在跳转栏中创建部分,那么你可以使用带有相关描述的pragma标记。现在请参阅问题中附带的快照。有“视图生命周期”和“一个节专门…'是由pragma marks创建的部分。

#pragma标记用于标记一组方法,以便您可以轻松地从跳转栏中找到和检测方法。当您的代码文件达到1000行左右,并且您想通过跳转框中的类别快速找到方法时,它可能会帮助您。

在一个较长的程序中,很难记住和找到一个方法名。所以pragma mark允许你根据方法所做的工作来分类。例如,你为表视图协议方法、AlertView方法、Init方法、声明等标记了一些标签。

#pragma标记是Xcode的工具,但它对你的代码没有影响。它只是帮助在编码时更容易找到方法。

只是添加我正在寻找的信息:pragma标记是特定于Xcode的,所以如果你处理一个在不同ide中打开的c++项目,它在那里没有任何影响。例如,在Qt Creator中,它不会为方法添加类别,也不会生成任何警告/错误。

#pragma是一个来自C语言的预处理器指令。它的目的是向编译器指定依赖于实现的信息——也就是说,每个编译器都可以选择按自己的意愿解释这个指令。也就是说,它被认为是一个不改变/影响代码本身的扩展。所以编译器可能会忽略它。

Xcode是一个IDE,它利用了#pragma,并以自己特定的方式使用它。重点是,#pragma不是Xcode的,甚至不是Objective-C特有的。

简单地说,我们可以说#pragma mark -用于对方法进行分类,因此您可以轻松地找到您的方法。它对于长期项目非常有用。