Mam następujący problem: Otrzymuję wystąpienie klasy przekazanej i chcę znać nazwę klasy tej instancji. Jak to zdobyć?Pobieranie nazwy klasy z instancji
Odpowiedz
jeśli wszystko, co chcesz zrobić, to sprawdzić obiekt, aby zobaczyć, czy jest to rodzaj pewnej klasy
BOOL test = [self isKindOfClass:[SomeClass class]];
Dzięki, wykorzystam to :) – Robin
Wzniesiono głos dla przewidywania potrzeby, a nie tylko odpowiedzi na pytanie. –
Od wewnątrz samego
-(NSString *) className
{
return NSStringFromClass([self class]);
}
Absolutnie nie chcę wzbudzać złości, ale była to druga odpowiedź związana z systemem iOS w twoim profilu. Wydaje mi się, że dodam tylko, że możemy odnieść się do instancji jako "ja" z poziomu jej wdrożenia. Czy broniłbyś tego, dodając zasadniczo do przyjętej trzyletniej odpowiedzi? – danh
@danh Widzę, że mnie ścigasz. Dobrze dla ciebie! –
Przepraszam, po prostu kliknąłem ten i zastanawiałem się, czy coś powiedzieć. Po prostu chciałem zrobić delikatne ściągacze, ale wiem, że w tych semi-anonimowych ustawieniach temperament bardzo szybko się rozgrzewa. Dziękuję za to, że jesteście z tego dobroduszni. (W rzeczywistości +1 za praktykowanie enkapsulacji). – danh
klasie Jeśli szukasz jak dostać classname w Swift możesz użyć reflect, aby uzyskać informacje o obiekcie.
let tokens = split(reflect(self).summary, { $0 == "." })
if let typeName = tokens.last {
println(typeName)
}
lub po prostu 'self.dynamicType' – jbg
Można również użyć [[self class] description]
Wystarczy dodać kategorię:
NSObject+Extensions.h
- (NSString *)className;
NSObject+Extensions.m
- (NSString *)className {
return NSStringFromClass(self.class);
}
następnie użyć następującego kodu:
NSString *className = [[SomeObject new] className];
lub nawet:
NSString *className = SomeObject.new.className;
Aby użyć go w dowolnym miejscu, dodaj kategorię do pliku YourProject.pch.
Po wywołaniu klasy Swift zwraca ona nazwę klasy o podanej nazwie. – Alper
- 1. pobieranie nazwy obiektu i nazwy funkcji
- 2. Tworzenie instancji klasy object-c według nazwy?
- 3. pobieranie najbardziej specyficznych klas instancji
- 4. Importowanie instancji klasy instancji z biblioteki dll
- 5. Dynamiczne pobieranie nazwy obecnej metody
- 6. Ustawienie C#/pobieranie właściwości klasy według nazwy ciągu znaków
- 7. Uzyskaj nazwę pola z klasy bez instancji
- 8. VB.NET: Uzyskaj nazwę klasy instancji
- 9. Czy istnieje sposób na uzyskanie nazwy klasy klasy pochodnej QObject bez tworzenia instancji tej klasy?
- 10. Pobieranie nazwy pliku Makefile z pliku Makefile
- 11. Pobieranie nazwy zdarzenia z wyrażenia lambda
- 12. Pobieranie nazwy pliku z pliku pobierania http
- 13. Pobieranie nazwy bazy danych z pliku bak
- 14. Pobieranie nazwy pliku dla ALAsset
- 15. Tworzenie instancji klasy pochodnej z instancji klasy podstawowej bez znajomości elementów klasy
- 16. Pobierz zestaw według nazwy klasy
- 17. Uzyskaj rodzica klasy instancji
- 18. instancji klasy dziecko od klasy nadrzędnej (PHP)
- 19. Tworzenie instancji obiektów pochodnych z klasy bazowej
- 20. Tworzenie instancji klasy PHP z ciągiem
- 21. node.js - Tworzenie instancji klasy bezpośrednio z żądania
- 22. Deklarowanie instancji klasy wewnątrz tej klasy
- 23. dojazd do zmiennej klasy z instancji klasy w coffeescript
- 24. Python - czy mogę programowo dekorować metody klasy z instancji klasy?
- 25. Czy metody klasy zwiększają wielkość instancji klasy?
- 26. Przedmiot klasy jako zmiennej instancji wewnątrz klasy
- 27. Zmienna instancji klasy Ruby vs. zmienna klasy
- 28. Odzyskiwanie nazwy klasy tablicy
- 29. proszę wyjaśnić Java 8 metody referencyjnej do instancji metoda z użyciem nazwy klasy
- 30. instancji zmiennej wewnątrz singleton klasy
Być może przeredagować pytanie lub zaakceptować odpowiedź pasującą do pytania? –
@JasperBlues: Zrobione, nawet nie zdawałem sobie sprawy, jak bardzo jest to popularne! – Robin