Propriedades somente leitura no Objective-C?
Eu declarei uma propriedade somente leitura na minha interface como tal:
@property (readonly, nonatomic, copy) NSString* eventDomain;
Talvez eu esteja entendendo mal as propriedades, mas pensei que quando você a declara comoreadonly
, você pode usar o configurador gerado dentro da implementação (.m
), mas entidades externas não podem alterar o valor.Esta questão SO diz que é isso que deveria acontecer. Esse é o comportamento que eu estou procurando. No entanto, ao tentar usar o setter padrão ou a sintaxe de ponto para definireventDomain
dentro do meu método init, isso me dá umaunrecognized selector sent to instance.
erro. É claro que estou@synthesize
propriedade. Tentando usá-lo assim:
// inside one of my init methods
[self setEventDomain:@"someString"]; // unrecognized selector sent to instance error
Então, eu estou entendendo mal oreadonly
declaração sobre uma propriedade? Ou algo mais está acontecendo?