Chciałbym użyć składni @property
, aby zadeklarować zsyntetyzowaną właściwość, która jest publicznie dostępna tylko do odczytu, ale ma ustawcę, który może być wywołany prywatnie z klasy.Właściwość Objective-C, która jest tylko do odczytu publicznego, ale ma prywatnego setera
Ponieważ jest to Objective-C, oznacza to, że metoda setFoo:
zostanie zsyntetyzowana, ale wywołanie jej poza klasą spowoduje wygenerowanie ostrzeżenia (nierozpoznany selektor). Aby wywołać ostrzeżenie, muszę zadeklarować właściwość readonly
; czy istnieje jakiś sposób zmuszenia syntetyzowanego setera, który jest dostępny tylko w klasie?
Jesteś poprawne , zobacz także http://stackoverflow.com/questions/743586/synthesizing-properties-in-categories/3251621#3251621 –
Jest to świetny sposób na wykorzystanie wygody właściwości przy jednoczesnym zachowaniu koniecznej enkapsulacji. :) Uwielbiam tę możliwość. – LucasTizma
Zaktualizowany odnośnik do dokumentacji: http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/CustomizingExistingClasses/CustomizingExistingClasses.html#//apple_ref/doc/uid/TP40011210-CH6-SW3 –