2014-06-30 12 views
12

Meine vorherige Frage wurde als doppelt markiert. Ich versuchte, meine Frage zu bearbeiten, aber ich kann doppelte Tag nicht entfernen, also muss ich ein schaffen neue What is the swift equivalent to _cmd?_cmd in Swift language

ich möchte aktuelle Methodennamen bekommen in einem Format-Nachricht zu verwenden, ähnlich wie diese

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

Auch ich möchte _cmd als Schlüssel verwenden, um verbundenes Objekt zu setzen. Kennt jemand das Äquivalent von _cmd in Swift, das ich wirklich schätze.

+0

Ihre Frage wurde als Duplikat markiert, da sie bereits eine Antwort enthält: siehe den Link zu Ihrer alten Frage. Wenn Sie der Meinung sind, dass es sich nicht um ein Duplikat handelt, besuchen Sie [meta] (http://meta.stackoverflow.com/), lesen Sie jedoch die [Hilfe] (http://stackoverflow.com/help/whats-meta). zuerst. – AstroCB

+1

hast du '__FUNCTION__' versucht? Wenn es nicht das ist, was Sie wollen, machen Sie es in der ursprünglichen Frage deutlich. Wir werden es bei Bedarf wieder öffnen. –

+0

Ich weiß, wie man __FUNCTION__ verwendet, aber ich möchte etwas wie _cmd, denn es kann in anderen Fällen verwendet werden – LongNV

Antwort

19

Es gibt keine _cmd, aber Sie können __FUNCTION__ verwenden, um den Namen der aktuellen Funktion abzurufen, die die meiste Zeit anstelle von Selektoren verwendet werden kann.

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

Vielen Dank – fnc12

+17

Beachten Sie, dass' __FUNCTION__' in Swift 2.2 durch '# function' ersetzt wurde. – cherrmanncom