Swift 4 - 扩展中的私有方法

hoa*_*Cap 1 methods private swift

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

例如:

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

    }
}
Run Code Online (Sandbox Code Playgroud)

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

你能帮助我如何实现我的目标吗?

小智 6

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

我想你可以把你private extension的其他文件,它会做的伎俩。


例如:

FileA.swift

class A {
}
Run Code Online (Sandbox Code Playgroud)

文件B.swift

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

    func privateFoo() { 
    }
}
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你!