Deklaruję kilka zmiennych klasi naprawdę męczące jest pisanie prostych metod get / set dla każdej zmiennej. Pytanie brzmi: jak zsyntetyzować ustawiacze / getter dla zmiennych klas w celu-c?
Odpowiedzi:
4 dla odpowiedzi № 1Zwykle, gdy grupujesz zestaw powiązanych zmiennych, które mają być dostępne globalnie, tworzysz coś, co nazywa się Singleton:
Jak powinien wyglądać mój singleton Objective-C?
Oznacza to, że masz jedną metodę na poziomie klasy, która daje ci współużytkowaną instancję - więc możesz mieć wywołanie takie jak:
[MyClass sharedInstance].myProperty
Ponieważ przechowywane wartości są prawdziwymi zmiennymi instancji klasy, możesz używać normalnych właściwości, ale wszystkie klasy będą pracować z tymi samymi udostępnionymi danymi.
Zauważ, że niektórzy ludzie nie lubią używania singletonów, możesz przeczytać pewne zastrzeżenia dotyczące tej praktyki:
Ale ponieważ już zaczynasz z jednym nieodłącznymsingleton w rozwoju iPhone'a (delegat aplikacji, do którego każdy może uzyskać dostęp w dowolnym momencie) lekkie korzystanie z tej techniki nie zaszkodzi, jeśli będziesz ostrożny. Zauważ, że zamiast tworzenia klasy Singleton, jedną z alternatyw jest to, aby delegat aplikacji utworzył pojedyncze wystąpienie zmiennej klasy pamięci i miał dostęp do wszystkich za pośrednictwem delegata ...
1 dla odpowiedzi nr 2
coś takiego pojawia się w nagłówku po interfejsie:
@property (retain) NSString* caption;
natychmiast dzieje się to wewnątrz implementacji:
@synthesize caption;
Sprawdź ten samouczek, aby uzyskać więcej informacji: http://www.cocoadevcentral.com/d/learn_objectivec/
0 dla odpowiedzi № 3
Czy nie możesz po prostu makro edytora lub coś takiego?
0 dla odpowiedzi nr 4
Właściwość nie musi odwoływać się do ivar. Możesz mieć dynamiczną właściwość zwracającą zmienną statyczną, jeśli naprawdę chcesz.
Wystarczy użyć @dynamic i zaimplementować getter i setter, aby odwoływać się do zmiennych statycznych z pliku implementacji.