Tylko proxy statyczny obiekt i uzyskać do niego dostęp za pomocą metod klasy poziom, sam sposób chcesz zrealizować, na przykład pojedyncza
@implementation MyClass
+ (MyProxyObject *)proxy
{
static MyProxyObject *sharedProxy = nil;
if (sharedProxy == nil)
{
sharedProxy = [[MyProxyObject alloc] init];
}
return sharedProxy;
}
@end
Następnie dla dowolnej własności Twojej klasy, np. textColor, po prostu niech twoja klasa używa wartości w [[self class] proxy] .textColor zamiast przechowywać własną wartość. Na przykład.
@interface MyClass : UIView
@property (nonatomic, strong) textColor
@end
@implementation MyClass
- (UIColor *)textColor
{
return textColor ?: [[self class] proxy].textColor
}
@end
Jeśli potrzebny jest sposób, aby odświeżyć swoje wyświetlanymi widoki natychmiast, gdy właściwość na pełnomocnika ulega zmianie, można to zrobić poprzez pełnomocnika emitować NSNotification w swojej metodzie textColor setter i mają wszystkie instancje obserwować to powiadomienie i wywołanie setNeedsDisplay na siebie, gdy je otrzymają.
Dzięki @Nick, to genialne !. Zamierzam postępować zgodnie z twoją rekomendacją. –
Hej, dlaczego nie zaakceptowałeś? Czy to nie działa? –
Właściwie to zrobił, ale kliknę go przez błąd. Przepraszam Nick. Zaakceptowany ponownie. –