在Objective C中,我可以使用#pragma mark来标记符号导航器中的代码片段。由于这是一个C预处理器命令,所以在Swift中不可用。在Swift中有替代品吗,或者我必须使用丑陋的评论吗?
当前回答
今天早上在WWDC上,苹果工程师在Swift实验室确认,目前没有任何#pragma或类似的东西,他们认为这是一个bug,很快就会出现,所以我猜是beta 2,我希望。
不管怎样,它在路上了。
Xcode现在支持//MARK:, //TODO:和//FIXME标记来注释你的代码和 在跳转栏中列出它们
其他回答
Use
// MARK: SectionName
or
// MARK: - SectionName
这将在pragma标记上面加一行,使其更具可读性。
为了方便,只需添加
// MARK: - <#label#>
到您的代码片段。
▽替代方式
这样使用它
private typealias SectionName = ViewController
private extension SectionName {
// Your methods
}
这不仅可以添加标记(就像pragma mark一样),还可以很好地隔离代码。
Xcode 8现在像下面这样处理它,在方法下拉菜单中显示如下:
在Xcode 11中,他们添加了小地图,可以激活编辑器->小地图。
小地图将显示每个标记文本在代码中快速定位。 每个标记都写为// mark: Variables
在Xcode 5之前,预处理器指令#pragma标记存在。
从Xcode 6开始,你必须使用// MARK:
这些预处理器特性允许为源代码编辑器的函数下拉框带来一些结构。
一些例子:
// MARK:
->前面有一个水平分隔符
// MARK: your text goes here
->在下拉列表中将“您的文本放在这里”以粗体显示
// MARK: - your text goes here
->在下拉列表中将“您的文本放在这里”以粗体显示,前面有一个水平分隔符
更新:增加了截图,因为有些人似乎仍然有问题:
你可以使用// MARK:
也有讨论认为,自由使用类扩展可能是一种更好的实践。由于扩展可以实现协议,例如,你可以把你所有的表视图委托方法放在一个扩展中,并将你的代码分组在一个比#pragma mark更语义的级别上。
推荐文章
- 在Swift中转换字符串为日期
- 点击按钮时如何打开手机设置?
- 在Swift中使用自定义消息抛出错误/异常的最简单方法?
- 编译器错误:带有Objective-C选择器的方法与前面带有相同Objective-C选择器的声明冲突
- 如何在Swift中获得唯一的设备ID ?
- 如何在Swift中获得枚举值的名称?
- 如何调用手势点击在UIView编程在迅速
- 什么是Swift相当于respondsToSelector?
- dyld:库未加载:@rpath/libswift_stdlib_core.dylib
- 我如何隐藏在一个Swift iOS应用程序的状态栏?
- 在python模块文档字符串中放入什么?
- 以编程方式更改导航标题
- 我如何得到一个plist作为一个字典在Swift?
- 如何在Swift中删除视图的所有子视图?
- 属性getter和setter