2014-06-30 11 views
12

La mia domanda precedente è stata contrassegnata come duplicata. Ho provato a modificare la mia domanda, ma non riesco a rimuovere il tag duplicato, quindi devo crearne uno nuovo What is the swift equivalent to _cmd?_cmd in Swift lingua

voglio ottenere il nome del metodo corrente da utilizzare in un messaggio in formato simile a questo

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

Inoltre, voglio usare _cmd come chiave per impostare l'oggetto associato. Qualcuno sa l'equivalente di _cmd in Swift che apprezzo davvero.

+0

La tua domanda è stata identificata come duplicata perché ha già una risposta: vedi il link sulla tua vecchia domanda. Se ritieni che non sia un duplicato, visita [meta] (http://meta.stackoverflow.com/), ma leggi il [Centro assistenza] (http://stackoverflow.com/help/whats-meta) primo. – AstroCB

+1

hai provato "__FUNCTION__'? se non è quello che vuoi, chiariscilo nella domanda originale. lo riapriremo se necessario. –

+0

So come usare __FUNCTION__, ma voglio qualcosa come _cmd, perché può essere usato in altri casi – LongNV

risposta

19

Non c'è _cmd, ma è possibile utilizzare __FUNCTION__ per ottenere il nome della funzione corrente, che può essere utilizzata al posto di selettori la maggior parte del tempo.

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

Grazie mille – fnc12

+17

Nota che' __FUNCTION__' è stato sostituito con '# function' in Swift 2.2. – cherrmanncom