我有一个自定义视图控制器,它从XIB加载对象,其中一个是NSPopover
我在视图控制器上有一个方法,它基本上传递给popover,比如:

func showRelativeToRect(positioningRect: NSRect, ofView positioningView: NSView!, preferredEdge: NSRectEdge) {
    self.popover.showRelativeToRect(positioningRect, ofView: positioningView, preferredEdge: preferredEdge)
}

但是,这会导致一个我不太理解的编译错误:
/Users/Craig/projects/.../EditItemPopoverController.swift:23:102: 'NSRectEdge' is ambiguous for type lookup in this context

这似乎是由冲突的可用类型NSRectEdge引起的,由自动完成证实:
我怎样才能告诉斯威夫特我想使用一种特殊的类型?进入NSPopover.swift类,似乎使用的是版本:
typealias NSRectEdge = Int
但我不知道如何告诉Swift编译器,在我的视图控制器中,这是我想要使用的类型。我可以通过将我的方法定义为采用Int而不是NSRectEdge来解决这个问题,但我希望使用与Popover相同的方法签名。

最佳答案

我尝试用以下代码编译一个测试项目:

typealias NSRectEdge = Int

在文件的顶部,它起作用了——也许只是重新声明它起作用了。但这并没有记录在案。
实际上,我认为应该有一个单独的命令,如c_中的using,但还没有。

关于xcode - 在此上下文中,“NSRectEdge”对于类型查找不明确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25284423/

10-11 14:26