Я хотел бы использовать свойства для переменных экземпляра, но во многих случаях я хочу, чтобы сам класс имел доступ к настройщику. Я надеялся, что смогу сделать что-то вроде этого:
foo.h:
@interface Foo {
NSString *bar;
}
@property (readonly) NSString *bar;
@end
Foo.m:
#import "Foo.h"
@interface Foo ()
@property (copy) NSString *bar;
@end
@implementation Foo
@synthesize bar;
@end
Но это порождает предупреждение:
Foo.m:4: warning: property ‘bar’ attribute in ‘Foo’ class continuation does not match class ‘Foo’ property
Я вижу, на что он жалуется, но все же кажется полезной идиомой. Есть ли другой способ сделать это, не называя своих собственных сеттеров?