Swift 4 - приватный метод внутри расширения - PullRequest
1 голос
/ 13 марта 2019

Я ищу способ написать приватную функцию внутри расширения.

Например:

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, я все равно могу вызвать его извне расширения, что не соответствует ожиданиямбыть.

Можете ли вы помочь мне, как достичь моей цели?

1 Ответ

3 голосов
/ 13 марта 2019

Извините, у меня недостаточно репутации, чтобы отвечать.

Я думаю, вы можете поместить свой private extension в другой файл, он сделает свое дело.

Например: FileA.swift

class A {
}

FileB.swift

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

    func privateFoo() { 
    }
}

Надеюсь, это поможет!

...