Skip to main content
 首页 » 操作系统

objective-c之'convertPoint' 的使用不明确

2024年01月01日38mfryf

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

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

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

Ambiguous use of 'convertPoint'

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

请您参考如下方法:

有两件事你需要解决:

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

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

    NSPoint(x: 0.0, y: 0.0) 
    

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

    var p = NSPoint(0.0, 0.0) 
    

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