扩展方法只能在类内部访问

Rod*_*uiz 9 swift

我如何在一个方法中创建一个方法,extension让它只能在类(或它的子类)中访问,就像一个private方法,但在一个extension?

private 不会起作用,因为它必须在同一个声明中.

fileprivate 不起作用,因为它必须在同一个文件上.

public 或者默认设置不起作用,因为它可以从其他类中看到.

我错过了什么吗?

我正在寻找像extensionprivate或的东西classprivate.

swi*_*eek 2

目前 Swift 3 由于扩展中的私有可访问性而存在一些问题。在 swift4 中这将是可能的。您可以尝试使用 Xcode 9 beta。

  • Swift 4 使私有属性对同一文件中的扩展可见,但对不同文件中的扩展不可见。OP 所要求的在 Swift 4 中是不可能的,除非我弄错了。 (14认同)