c# - Qual é o equivalente de Objective-C de um get / propriedade definida protegido pública em C # - CoreDump.pt
Qual é o equivalente de Objective-C de um get / propriedade definida protegido pública em C #
Existe alguma maneira para criar uma propriedade como esta C propriedade # em Objective-C?
Essencialmente, eu quero torná-lo possível para obter o valor de fora da classe, mas apenas para ser capaz de definir o valor de dentro da classe.
Publicado 27/08/2009 em 02:36 2009-08-27 02:36
A maneira mais fácil de conseguir isso é para declarar a propriedade como readonlyna interface pública para MyClass(ou seja, o arquivo .h):
Então, em arquivo .m para essa classe, declare uma classe de extensão (uma categoria com um nome vazio). Em extensões de classe, você pode redeclare um @property para mudar sua writeability para READWRITE:
Claro, Objective-C não impõe restrições de acesso, então não há nada que impeça algum código desonestos de chamar -[MyClass setProp:]. A bandeira compilador isso como um aviso, no entanto, que é tão bom quanto você pode entrar em Objective-C. Infelizmente, não há nenhuma maneira padrão para documentar esta propriedade gravável "protegido" para subclasses; você vai ter que se contentar em uma convenção para sua equipe e ou colocá-lo na documentação pública para a classe se ele está em um quadro que você está indo para liberar.
Respondeu 27/08/2009 em 05:24 2009-08-27 05:24 share
Não há nenhuma maneira de fazer métodos @ private / @ protegidos em ObjC, estes directoves compilador aplicam-se apenas sobre as variáveis ​​de instância. Você pode, no entanto, declarar uma função C estática no mesmo arquivo para obter um método "@private".