Я хотел бы использовать свойства для переменных моего экземпляра, но во многих случаях я хочу, чтобы сам класс имел доступ к установщику. Я надеялся, что смогу сделать что-то вроде этого:
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
Я вижу, на что это жалуется, но это все еще кажется полезной идиомой. Есть ли другой способ сделать это без написания моих собственных сеттеров?