如何防止xcode将<##>视为代码段占位符

Dal*_*ale 2 xcode objective-c token code-snippets

我想在Objective C程序中的文字字符串中包含<##>.但是,Xcode会自动替换字符串,认为它应该是代码片段中使用的占位符.

例如

NSString *pattern = @"<#foo#>"
Run Code Online (Sandbox Code Playgroud)

尝试将其放入Xcode中,它将重新显示为foo的占位符.

在实际程序中,字符串是这样的RE,<#(.*)#>并且令人惊讶的是,代码实际上按预期工作 - 该问题仅在Xcode的显示中表现出来.真正的问题是,这会造成一种脆弱的情况,在编辑器中,很容易导致文本被意外替换.

作为一种解决方法,我可以从它的部分构造字符串

NSString *p1 = @"<#(.*)";
NSString *p2 = @"#>";
NSString *pattern = [NSString stringWithFormat:@"%@%@",p1,p2];
Run Code Online (Sandbox Code Playgroud)

但那不是很令人满意.

有没有人知道在Xcode中覆盖此行为的更好方法?

use*_*109 5

您可以通过利用字符串连接来避免不良行为,例如

NSString *str = @"<" "#foo#" ">";
Run Code Online (Sandbox Code Playgroud)