在 Xcode 中,如何禁止添加 "MARK:" 部分菜单?
In Xcode, How do I Suppress "MARK:" part of menu addition?
在Objective C中,当使用
// MARK: Line In Sand
默认项目会生成一个菜单项,其中包含单词"MARK:",或者换句话说:
最近我从 Apple 下载了一个示例项目 Swift (vs ObjC) "ViewControllerPreview" // MARK: Line In Sand 只显示 "Line In Sand"(没有 "MARK") 使用上述标记注释样式时。他们怎么做到的!?这只是一项基本改进,只适用于 Swift 吗?
如果您在 Objective-C,请使用此语法:
#pragma mark Line In Sand
在Objective-C中,您可以通过两种不同的方式做这样的标记:
#pragma mark - Hack
// MARK: HACK
这将显示为:
在Swift中,你只会得到// MARK
,它被当作pragma mark。
// MARK: Something
Xcode 10 现在处理 Objective C 和 Swift 对
的使用
// MARK: - Line In Sand
同样地,这个问题和答案最终因 Apple 更新而变得毫无意义。
(下方原始答案的命运留给社区)
事实证明 Swift 中的预处理器对
// MARK:
语法,而 Objective C 预处理器看到这一点并且不允许特殊处理。 Apple 可以通过从菜单中省略 "MARK:" 来缓解这种情况,就像在 #pragma 版本中所做的那样,但没有乐趣。
并且在相关说明中,事实证明 Swift(不是 ObjC)预处理器也知道如何自动添加分隔线,因此:
// MARK: - Line In Sand
不仅会生成分隔线,还会生成 'markless' 菜单项...但仅在 Swift.
中
在 Xcode 8.3 中,Apple 最终修复了 // MARK:
在 Objective C 中标记代码段的约定,因此它不再在菜单中显示单词 "MARK"。
Objective C #pragma mark -
与 // ???:
、 // !!!:
、 // FIXME:
等其他代码标记机制不一致。 // MARK:
在 Swift 中完全实现而在 ObjC 中只实现了一半这一事实在 Xcode 本身中是不一致的,直到 Xcode 在编辑器中修复了 // MARK:
的实现对于 ObjC。
与Xcode8.3
// MARK: - Line In Sand
在 Objective C 中正常工作,不再在菜单中显示 "MARK" 工件。
在Objective C中,当使用
// MARK: Line In Sand
默认项目会生成一个菜单项,其中包含单词"MARK:",或者换句话说:
最近我从 Apple 下载了一个示例项目 Swift (vs ObjC) "ViewControllerPreview" // MARK: Line In Sand 只显示 "Line In Sand"(没有 "MARK") 使用上述标记注释样式时。他们怎么做到的!?这只是一项基本改进,只适用于 Swift 吗?
如果您在 Objective-C,请使用此语法:
#pragma mark Line In Sand
在Objective-C中,您可以通过两种不同的方式做这样的标记:
#pragma mark - Hack
// MARK: HACK
这将显示为:
在Swift中,你只会得到// MARK
,它被当作pragma mark。
// MARK: Something
Xcode 10 现在处理 Objective C 和 Swift 对
的使用// MARK: - Line In Sand
同样地,这个问题和答案最终因 Apple 更新而变得毫无意义。
(下方原始答案的命运留给社区)
事实证明 Swift 中的预处理器对
// MARK:
语法,而 Objective C 预处理器看到这一点并且不允许特殊处理。 Apple 可以通过从菜单中省略 "MARK:" 来缓解这种情况,就像在 #pragma 版本中所做的那样,但没有乐趣。
并且在相关说明中,事实证明 Swift(不是 ObjC)预处理器也知道如何自动添加分隔线,因此:
// MARK: - Line In Sand
不仅会生成分隔线,还会生成 'markless' 菜单项...但仅在 Swift.
中在 Xcode 8.3 中,Apple 最终修复了 // MARK:
在 Objective C 中标记代码段的约定,因此它不再在菜单中显示单词 "MARK"。
Objective C #pragma mark -
与 // ???:
、 // !!!:
、 // FIXME:
等其他代码标记机制不一致。 // MARK:
在 Swift 中完全实现而在 ObjC 中只实现了一半这一事实在 Xcode 本身中是不一致的,直到 Xcode 在编辑器中修复了 // MARK:
的实现对于 ObjC。
与Xcode8.3
// MARK: - Line In Sand
在 Objective C 中正常工作,不再在菜单中显示 "MARK" 工件。