Xcode 10代码完成占位符-什么是“ T”?

时间:2018-06-29 00:47:17

标签: ios swift code-completion xcode10

在Xcode 10代码完成中,占位符标记下面的文本前面有一个额外的#T#(要确认是这样,请将插入的代码模板复制并粘贴到其他文本编辑器中):

let alert = UIAlertController(
    title: <#T##String?#>, message: <#T##String?#>, 
    preferredStyle: <#T##UIAlertController.Style#>)

那是什么? “ T”表示类型吗?使用占位符有什么区别?

1 个答案:

答案 0 :(得分:0)

语法<#T##_A_##_B_#>用于指定占位符的默认代码段。占位符将显示为_A_,但是当用户按下Enter键时,占位符将被替换为_B_

占位符:

enter image description here

按Enter键后:

enter image description here

向观众展示内容时,这是一个有用的功能,因为相对于片段,我不需要记住每个片段的名称,只需选择一个占位符,然后按Enter键即可获得正确的片段代码。

编辑

回答您的问题,实际上似乎T代表类型。如果您尝试用表达式<#T##Example1##let i = 3#>替换占位符,则占位符不会像您期望的那样被let i = 3替换。而是用<<error type>>代替。

此外,该占位符<#T##transform: (Error) throws -> U?##(Error) throws -> U?#>被替换为:

{ (<#Error#>) -> U? in
    <#code#>
}

我的猜测是,当您在T前面时,您告诉Xcode您将提供一种类型,然后Xcode会为该类型找到合适的默认值。