Zaczynam od szybkiego i otwierając projekt stworzony przy użyciu swift2 z xcode 8 beta, modyfikator private
zmieniono na fileprivate
. co oznacza to słowo kluczowe? i czym się różni od private
?Co oznacza słowo kluczowe fileprivate w języku Swift?
46
A
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.
co masz na myśli przez "bezpośredni zakres obejmujący"? Kiedy powinienem użyć tylko 'private' zamiast' fileprivate'? –
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
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