chciałbym wiedzieć, które miejsce jest najlepsze dla umieszczania IBOutlets od storyboardów:IBOutlet najlepsze praktyki
a) W pliku nagłówka (.h)
b) w rozszerzeniu klasy utworzony na. m plik
Dziękuję
Pozdrowienia
chciałbym wiedzieć, które miejsce jest najlepsze dla umieszczania IBOutlets od storyboardów:IBOutlet najlepsze praktyki
a) W pliku nagłówka (.h)
b) w rozszerzeniu klasy utworzony na. m plik
Dziękuję
Pozdrowienia
Zakładając, że jest to dla kontrolera widoku, opcja b jest lepiej, jak nie powinno być wystawienie wyloty publicznie fo r inne klasy do bezpośredniej interakcji. Powinny być uważane za twoją prywatną wiedzę. Twój kontroler powinien ujawnić inny i bardziej odpowiedni interfejs.
Jeśli jest to widok, to jest trochę szaro, jak powinieneś podejść do problemu, ponieważ MVC poprowadzi cię do ujawnienia gniazdek, aby umożliwić kontrolerowi korzystanie z nich. MVVM poprowadzi cię do ukrycia wylotów, tak aby widok został przekazany do obiektu modelu widoku i wewnętrznie konfiguruje wyjścia.
Rozszerzenie klasy to najlepsze miejsce, jeśli nie chcesz wystawiać tego sklepu publicznie. Twoja .h
powinna być czysta i powinna zawierać tylko te metody lub właściwości, które są publiczne (dostępne dla innych programistów). W ten sposób nie będą mylić kolegę, nie mając niepotrzebnych Ivars i metod spowolnienia .h
pliku
To wszystko o zarządzaniu kod i czyni mniej nieporozumień, w przeciwnym razie nie ma żadnych metod prywatnych/właściwości w Objective-C
Również, jeśli zaznaczysz próbkę jabłka, wykonają ten sam wzór. na przykład LoadingStatus.m ma kod
#import "LoadingStatus.h"
@interface LoadingStatus()
@property (nonatomic, strong) UIActivityIndicatorView *progress;
@property (nonatomic, strong) UILabel *loadingLabel;
@end
Od Apple Resource Programming Guide: Nib Files:
wyloty są ogólnie uważane za prywatne do klasy definiującej; chyba że istnieje powód do publicznego ujawnienia nieruchomości, ukryj deklaracje właściwości jako rozszerzenie klasy.
@interface mogą pojawiać się zarówno w pliku .h (właściwości publiczne) i pliku .m (prywatnych posesji). IBOutlets powinny być zadeklarowane w pliku .m.
Jeśli jesteś zainteresowany czytać ten topic.
Pozdrawiam!
Należy pamiętać, że .h jest publicznym nagłówkiem.
Umieść tam swoje IBOutlet
, jeśli powinny być dostępne dla innych klas.
Jednak nawet jeśli możesz to zrobić. Powiedziałbym, że eksponowanie IBOutlet
w publicznym nagłówku nie jest dobrą praktyką (z perspektywy orientacji obiektu), ponieważ ujawniasz pewne szczegóły implementacji, które powinny być widoczne tylko dla kogo jest zainteresowany.
Krótko mówiąc, umieszczenie IBOutlet
w rozszerzeniu klasy w .m
jest dobrą praktyką.
jeśli chcesz uzyskać dostęp do gniazdka z innego VC następnie .h inaczej .m –
@Bhavin najlepsza praktyka doprowadzi do nie chcą otworzyć wylot z innego VC – Wain