W języku Swift, jaki jest konwencjonalny sposób definiowania wspólnego wzorca, w którym właściwość ma być zewnętrznie tylko do odczytu, ale może być modyfikowana wewnętrznie przez klasę (i podklasy), które są jej właścicielami.
W Objective-C są następujące opcje:
- Zadeklaruj właściwość jako tylko do odczytu w interfejsie i użyj rozszerzenia klasy, aby uzyskać dostęp do właściwości wewnętrznie. Jest to dostęp oparty na wiadomościach, dlatego dobrze współpracuje z KVO, atomowością itp.
- Zadeklaruj właściwość jako tylko do odczytu w interfejsie, ale uzyskaj dostęp do zaplecza ivar wewnętrznie. Ponieważ domyślny dostęp do ivar jest chroniony, działa to dobrze w hierarchii klas, w której podklasy również będą mogły modyfikować wartość, ale w przeciwnym razie pole jest tylko do odczytu.
W Javie konwencja to:
- Zadeklaruj chronione pole i zaimplementuj publiczną metodę pobierającą tylko do odczytu.
Jaki jest idiom dla Swift?
var
słowo kluczowe, aby je skompilować.)