Swift 4 - 扩展中的私有(private)方法

标签 swift methods private

我正在寻找一种在扩展中编写私有(private)函数的方法。

例如:

class A: UIViewController {
    override viewDidLoad() {
        privateFoo()
    }
}

private extension A {
    func foo() { 
        privateFoo()
    }

    private func privateFoo() { //Helper function for foo(), expected to be called inside the scope of this extension only

    }
}

但是,即使我将 privateFoo() 声明为 private,我仍然可以从扩展外部调用它,这不是我所期望的。

有人能帮我实现我的目标吗?

最佳答案

抱歉,我没有足够的声誉来回复。

我想你可以把你的私有(private)扩展名放在其他文件中,它会成功的。


例如:

FileA.swift

class A {
}

文件B.swift

private extension A {
    func foo() { 
        privateFoo()
    }

    func privateFoo() { 
    }
}

希望对您有所帮助!

关于Swift 4 - 扩展中的私有(private)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55133867/

相关文章:

ios - 如何在 Swift 中显示动态高度的 3*3 CollectionView 单元格

ios - UIButton 按下不会调用函数

c++ - 为什么将私有(private)函数的引用传递给外部函数是有效的?

java - 从方法访问字段的正确方法是什么

C++ 类(公共(public)、私有(private)和 protected )

ios - 获取iOS中两个坐标之间距离的垂直和水平分量

ios - 使用 Swiftly JSON 解析 JSON

java - 如何调用抽象类中的函数?

javascript - 多个方法调用顺序回调的 meteor 模式

java - Java 中的参数传递(ArrayList 与 Integer)