Czy istnieje sposób, aby dowiedzieć się - przy starcie - czy dana metoda jest o zmiennej liczbie argumentów typu? Coś takiego jak method_getTypeEncoding()
; to nie powie mi, czy metoda akceptuje zmienną liczbę argumentów. A może jest jakaś sztuczka, żeby to powiedzieć?Ustalenie, czy metoda Objective-C jest o zmiennej liczbie argumentów podczas wykonywania
5
A
Odpowiedz
6
komentarz Roberta jest poprawna. Rozważmy:
@interface Boogity
@end
@implementation Boogity
- (void)methodWithOneIntArg:(int)a {;}
- (void)variadicMethodWithIDSentinel:(id)a, ... {;}
@end
Running strings
na wynikowy plik binarny produkuje (był tam także stado main()
):
strings asdfasdfasdf
Boogity
methodWithOneIntArg:
variadicMethodWithIDSentinel:
[email protected]:8i16
[email protected]:[email protected]
Hello, World!
Gdybym zmienić metodę zmiennej liczbie argumentów należy uznać jako - (void)variadicMethodWithIDSentinel:(int)a, ...
wyjście strings
staje:
Boogity
methodWithOneIntArg:
variadicMethodWithIDSentinel:
[email protected]:8i16
Hello, World!
Tak, nie, nie sposób powiedzieć.
Powiązane problemy
- 1. o zmiennej liczbie argumentów szablony o zmiennej liczbie argumentów szablonu
- 2. funkcji o zmiennej liczbie argumentów argumentów kluczowych
- 3. maszynopis: typy o zmiennej liczbie argumentów funkcji
- 4. o zmiennej liczbie argumentów szablony typu odliczenie
- 5. rekurencyjnej funkcji o zmiennej liczbie argumentów szablonu
- 6. o zmiennej liczbie argumentów ekspansja używając-deklaracji
- 7. o zmiennej liczbie argumentów szablonu priorytet konstruktor
- 8. Java funkcji o zmiennej liczbie argumentów Parametry
- 9. Parametry ogólne o zmiennej liczbie argumentów
- 10. o zmiennej liczbie argumentów aliasy szablonu jako argumentów szablonu
- 11. Częściowa specjalizacja dla zmiennej liczbie argumentów szablonu musi pierwszy niekomunistyczny o zmiennej liczbie argumentów parametr szablonu
- 12. obsługuje przechwytywanie lambda o zmiennej liczbie argumentów argumentów szablonu
- 13. szablony o zmiennej liczbie argumentów: wytwarzanie krotki par sąsiednich elementów
- 14. o zmiennej liczbie argumentów funkcja szablon z równych typów argumentów
- 15. szablonu parametr - wskaźnik z funkcji o zmiennej liczbie argumentów argumentów
- 16. Przełęcz kawałek ciąg o zmiennej liczbie argumentów pusty parametr interface
- 17. Initialzing i członkach korzystające o zmiennej liczbie argumentów klasy szablonu
- 18. szablony o zmiennej liczbie argumentów i nie ma wartości
- 19. Nie wywnioskować kontekst w funkcji o zmiennej liczbie argumentów szablonu
- 20. o zmiennej liczbie argumentów funkcja szablon bez parametrów formalnych
- 21. sizeof o zmiennej liczbie argumentów szablonu (suma wszystkich elementów sizeof)
- 22. go - o zmiennej liczbie argumentów parametry funkcji pass-through
- 23. o zmiennej liczbie argumentów szablonu klasy bazowej przekazywanie połączeń
- 24. szablony o zmiennej liczbie argumentów z 'const' parametrem przeciążenia
- 25. Funkcje jako argumenty o zmiennej liczbie argumentów szablonów
- 26. Sekwencjonowanie wśród zmiennej liczbie argumentów ekspansji
- 27. Oddzielne definicje zmiennej liczbie argumentów szablonów
- 28. Szablon odliczenie dla zmiennej liczbie argumentów szablonu argumentów lambda
- 29. aliasing do zmiennej liczbie argumentów funkcji szablonu
- 30. użyciu deklaracja zmiennej liczbie argumentów szablonu
można wyjaśnić trochę więcej co kontekst że chcesz tę informację? Nie jestem pewien, jak dokładnie to znaleźć w czasie wykonywania, ale ja również nigdy nie potrzebowałem budować wielu metod variadycznych. Zasadniczo, do czego dążę, być może nie musisz wiedzieć i istnieje większy problem. Być może, ale zawsze mogę się mylić zbyt :) –
Co stanie się, gdy wywołasz 'method_getNumberOfArguments()' na metodzie veridic? Nigdy go nie wypróbowałem, ale może zwraca specjalną wartość (jak -1 lub coś podobnego)? Zobacz także 'method_copyArgumentType()'. – user1118321
@ user1118321 'method_getNumberOfArguments' zwraca minimalną liczbę, tak jakby była to normalna metoda. –