Просто сделайте прокси статическим объектом и получите доступ к нему с помощью методов уровня класса, так же, как вы реализовали бы синглтон, например,
@implementation MyClass
+ (MyProxyObject *)proxy
{
static MyProxyObject *sharedProxy = nil;
if (sharedProxy == nil)
{
sharedProxy = [[MyProxyObject alloc] init];
}
return sharedProxy;
}
@end
Тогда для любой собственности вашего класса, например, textColor, просто попросите ваш класс использовать значение в [[self class] proxy] .textColor вместо хранения своего собственного значения. Э.Г.
@interface MyClass : UIView
@property (nonatomic, strong) textColor
@end
@implementation MyClass
- (UIColor *)textColor
{
return textColor ?: [[self class] proxy].textColor
}
@end
Если вам нужен способ немедленного обновления экранных представлений при изменении свойства прокси, вы можете сделать это, передав прокси-серверу NSNotification в своем методе setColor textColor, и чтобы все экземпляры наблюдали это уведомление и вызывали setNeedsDisplay на себя, когда они его получают.