【发布时间】:2016-08-19 07:29:18
【问题描述】:
我在一个类中有以下函数:
/// Returns the weather conditions at the given location.
/// - parameter for: A location on the Earth's surface.
/// - returns: If found, the `WeatherConditions` at the supplied location otherwise nil.
public func conditions(for location: Location) -> WeatherConditions? {
return nil // The actual code is not important to the question.
}
如下调用let myWeather = conditions(for: myLocation)。
代码运行良好,问题在于文档。下图是conditions 函数的“快速帮助”窗口中显示的内容。鉴于函数的用户必须使用外部参数标签 (for) 并且我已经明确记录了该标签,所以快速帮助窗口中的参数行不应该是 Parameters for 而不是 Parameters location?
这是 Xcode 中的错误,还是显示(内部)参数名称而不是外部参数标签的原因?
【问题讨论】:
-
我总觉得有点奇怪,但我的猜测是“外部参数名称”作为调用站点的标签,而“内部参数名称”作为实际的名称。标签应该使函数调用读起来有点像句子或短语。在 Swift 3 约定中,这些标签通常是介词而不是名词,并且用它们的名称(通常是名词)而不是标签(可以是介词)来描述参数是有意义的。如果我的猜测是正确的,我更愿意——为了清楚起见——他们会使用“标签”和“名称”而不是“外部”和“内部”名称。
-
XCode 应该真的可以制作两个版本的文档。一种用于 API 的使用者,无需访问源代码,仅在声明行中显示外部名称,并使用外部名称进行参数描述。另一个用于方法的实现者,在声明中显示名称并在参数描述中使用内部名称。我认为 XCode 还不能区分这两个视图。
-
@Codo 我倾向于同意但怀疑它是否会发生。同时,我将此作为错误 (27921906) 提出。我会在这里更新任何回复。
-
我也主要将其视为一个错误。如果 XCode 不提供内部和外部视图,它应该显示外部视图,因此只在代码中使用参数名称 for。