2016-09-16 37 views

Odpowiedz

89

fileprivate to jeden z nowych modyfikatorów dostępu Swift 3, który zastępuje private w swoim znaczeniu. fileprivate definiuje encję (klasę, rozszerzenie, właściwość, ...) jako prywatną dla wszystkich poza plikiem źródłowym, w którym jest zadeklarowana, ale jest dostępna dla wszystkich encji w tym pliku źródłowym.

private ogranicza encję w bezpośrednim zasięgu otaczającym.

+5

co masz na myśli przez "bezpośredni zakres obejmujący"? Kiedy powinienem użyć tylko 'private' zamiast' fileprivate'? –

+4

zakres obejmujący to zbiór bloków lub plików w tym zakresie, w którym jednostka jest zadeklarowana, "prywatne" ma na celu ukrycie szczegółów implementacji lub zachowanie rzeczy ukrytych, które są ograniczone do właściciela, podczas gdy 'fileprivate' może być używany do udostępniania niektórych wspólna funkcjonalność między wszystkimi jednostkami w tym samym pliku. – xhamr

+2

W szybkich <3.0 'prywatnych' pracach takich jak 'fileprivate' w swift 3.0. Jeśli zadeklarujesz w szybkim trybie 2.3, np. dwie klasy ze zmiennymi prywatnymi, ale w tym samym pliku miały nadal dostęp do każdej z "prywatnych" oznaczonych zmiennych. – Robert