【问题标题】:How do you get xcode to edit SWIFT argument values without losing the argument name?如何让 xcode 在不丢失参数名称的情况下编辑 SWIFT 参数值?
【发布时间】:2016-01-14 00:22:54
【问题描述】:

在编辑objective-c 时添加对函数的调用是xcode,通过参数切换仅突出显示值并且设置它们很简单。

但是,对于 SWIFT,参数名称和值都会突出显示,并且尝试设置值会删除参数名称。

如何让 xcode 不突出显示然后丢失参数名称? [注:xcode版本为7.1.1]

【问题讨论】:

  • 这仅适用于您示例中的 C 函数,还是适用于 Swift 中的任何方法?这一点很重要,因为 C 函数的工作方式与在 Swift 中使用时一样,并且您无法更改它。但是,您可以控制在 Swift 中创建的方法中突出显示的内容和未突出显示的内容。

标签: xcode swift


【解决方案1】:

在您的示例中,选项卡的行为是正确的。在构建调用时,参数名称​​应该被删除,因为它不是一个外部化的参数名称。

注意声明:

public func CVPixelBufferCreateWithPlanarBytes(allocator: CFAllocator?,
 _ width: Int, 
 _ height: Int, 
 // ...

_ 表示外部名称已全部被隐藏。这个方法像 C 函数一样被调用(只是一个逗号分隔的参数值序列)——因为实际上它一个 C 函数:

CV_EXPORT CVReturn CVPixelBufferCreateWithPlanarBytes(
    CFAllocatorRef CV_NULLABLE allocator,
    size_t width,
    size_t height,
    // ...

【讨论】:

    【解决方案2】:

    这取决于您调用的初始化程序或函数是否具有外部名称。如果存在外部名称,则制表符将使您能够发送此外部名称的参数。如果不存在,XCode 自动补全显示内部名称,为方便起见,但在 initalizar/函数中,缺少外部名称意味着您应该只发送值。

    例子:

    class MyClass {
        var myInt : Int
        var myString : String
    
        init(myInt: Int, myString: String) {
            self.myInt = myInt
            self.myString = myString
        }
    }
    

    在调用上面的初始化器时,对于所有初始化器参数,外部名称默认设置为内部名称,XCode会根据:

    var a = MyClass(myInt:Int, myString:字符串)

    而对于以下示例:

    func foo(_ a: Int, _ b: String) { 
    // ...
    }
    

    不存在外部名称(由_ 前缀到函数签名中的内部名称),并且在调用该函数时,XCode 将通过向您显示内部名称自动完成,但是标记完整的内部名称要覆盖的名称+值部分:

    foo (a: Int,b: 字符串)

    【讨论】:

      猜你喜欢
      • 2018-10-30
      • 1970-01-01
      • 2020-03-29
      • 2021-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多