Potrzebuję pomocy w zrozumieniu sposobu użycia zmiennej klasy/członka z metody instancji w Objective-C.Objective-C, zmienne składowe i zmienne klasy
Każdy fragment/przykład jest bardzo cenny.
Dzięki.
Potrzebuję pomocy w zrozumieniu sposobu użycia zmiennej klasy/członka z metody instancji w Objective-C.Objective-C, zmienne składowe i zmienne klasy
Każdy fragment/przykład jest bardzo cenny.
Dzięki.
Objective-C nie ma zmiennych klasowych, a to, co nazywamy zmienną składową, nazywa się zmienną instancji. Do zmiennych instancji można odwoływać się według nazwy z poziomu metody instancji. A jeśli potrzebujesz zachowania zmiennej klasy, możesz zamiast tego używać statycznego poziomu statycznego.
Oto bardzo szybkie próbki:
Foo.h
@interface Foo : NSObject {
NSString *foo;
}
@end
Foo.m
static NSString *bar;
@implementation Foo
- (void)foobar {
foo = @"test"; // assigns the ivar
bar = @"test2"; // assigns the static
}
@end
I będziesz używać go jak: Foo * myFoo = [[ Przydziel Foo] init]; [myFoo foobar]; [wydanie myFoo]; – nacho4d
Dzięki za szybką reakcję, moim pomysłem jest posiadanie klasy NSMutableDictionary, że wszystkie instancje obiektu będą dostępne, czy byłby to poprawny sposób projektowania, czy też czegoś mi brakuje? –
Jeśli potrzebujesz wspólnego słownika, to działa dobrze. Chcesz NSMutableDictionary na poziomie pliku w .m dla NSMutableDictionary i prawdopodobnie będziesz chciał go utworzyć w swojej metodzie '+ initialize' (aby upewnić się, że istnieje przed uzyskaniem dostępu do jakichkolwiek instancji). Jeśli kiedykolwiek zdejmiesz ten obiekt z głównego wątku, powinieneś użyć kolejki wywołania GCD, aby serializować do niego dostęp - inaczej, po prostu śmiało i używaj go jak normalnie. Pamiętaj, że musisz przykleić posiadaną instancję do zmiennej, np. '[[NSMutableDictionary alloc] init]'. I nigdy go nie wypuszczaj (ponieważ sama klasa nigdy nie odchodzi). –