我正在尝试同时学习 Swift 和 Cocoa。我有一个 NSView 的子类(实际上是 NSControl 的)。在这个子类中,我尝试运行以下行:
self.convertPoint(aPoint: NSPoint(0.0, 0.0), fromView: self)
当我的代码中有这一行时,我收到错误消息:
Ambiguous use of 'convertPoint'
看起来在 Cocoa 中,有两个重载的 convertPoint 方法,它们具有我在这里尝试使用的完全相同的类型签名。我该如何解决这种歧义?
请您参考如下方法:
有两件事你需要解决:
“
convertPoint的使用不明确”的修复只是删除aPoint:参数名称:self.convertPoint(NSPoint(x: 0.0, y: 0.0), fromView: self)相比之下,
NSPoint的初始化器需要包含其属性名称:NSPoint(x: 0.0, y: 0.0)您实际上可以通过尝试为您的
NSPoint创建一个独立的var来看到这一点,如下所示:var p = NSPoint(0.0, 0.0)它会给你错误:“调用中缺少参数标签
x:y:”
