2014-06-30 7 views
12

Moje poprzednie pytanie zostało oznaczone jako duplikat. Próbowałem zmieniać moje pytanie, ale nie mogę usunąć duplikaty tag, więc muszę utworzyć nowy What is the swift equivalent to _cmd?_cmd w języku Swift

chcę uzyskać aktualną nazwę metody do wykorzystania w wiadomości w formacie podobnym do tego jeden

[NSExeception raise:NSInternalInconsistencyException format:@"You must override %@ in a subclass", NSStringFromSelector(_cmd)] 

Ponadto, chcę użyć _cmd jako klucza do ustawienia powiązanego obiektu. Czy ktoś zna odpowiednik _cmd w Swift, który naprawdę doceniam.

+0

Twoje pytanie zostało oznaczone jako duplikat, ponieważ ma już odpowiedź: patrz link na stare pytanie. Jeśli uważasz, że to nie duplikat, odwiedź [meta] (http://meta.stackoverflow.com/), ale przeczytaj [Centrum pomocy] (http://stackoverflow.com/help/whats-meta) pierwszy. – AstroCB

+1

czy próbowałeś '__FUNCTION__'? jeśli nie jest to, czego chcesz, wyjaśnij to w oryginalnym pytaniu. w razie potrzeby otworzymy go ponownie. –

+0

Wiem, jak używać __FUNCTION__, ale chcę coś takiego jak _cmd, ponieważ może być używane w innym przypadku – LongNV

Odpowiedz

19

Nie ma numeru _cmd, ale można użyć nazwy __FUNCTION__, aby uzyskać nazwę bieżącej funkcji, która przez większość czasu może być używana zamiast selektorów.

func myUnimplementedMethod() { 
    println("You must override \(__FUNCTION__) in a subclass") 
} 
myUnimplementedMethod() 
// prints "You must override myUnimplementedMethod() in a subclass" 
+0

Bardzo dziękuję – fnc12

+17

Zwróć uwagę, że' __FUNCTION__' został zamieniony na '# function'in Swift 2.2. – cherrmanncom