模糊地使用'convertPoint'

时间:2014-10-22 21:36:45

标签: objective-c macos cocoa swift interop

我正在尝试同时学习Swift和Cocoa。我有一个NSView的子类(实际上是NSControl)。在这个子类中,我试图运行以下行:

self.convertPoint(aPoint: NSPoint(0.0, 0.0), fromView: self)

当我在代码中有这一行时,我收到错误消息:

  

模糊地使用' convertPoint'

看起来在Cocoa中,有两个重载的convertPoint方法具有完全相同的类型签名,我试图在这里使用。我该如何解决这种歧义?

1 个答案:

答案 0 :(得分:3)

您需要解决两件事:

  1. “不明确使用convertPoint”的修复只是删除aPoint:参数名称:

    self.convertPoint(NSPoint(x: 0.0, y: 0.0), fromView: self)
    
  2. 相比之下,NSPoint的初始化程序需要包含其属性名称:

    NSPoint(x: 0.0, y: 0.0)
    

    您可以通过尝试为var创建一个独立的NSPoint来实际看到这一点:

    var p = NSPoint(0.0, 0.0)
    

    它会给你错误:“在调用中缺少参数标签x:y: