2013-04-09 4 views
6

Utilizzando la libreria di runtime Objective-C, come possiamo scoprire se un oggetto è un oggetto di classe anziché un'istanza di una classe?Scopri se un oggetto è un oggetto di classe anziché un'istanza di una classe

+0

Qual è la differenza tra cosa intendi per "un oggetto che è una classe" e un'istanza di una classe? –

+1

@Boon: ho difficoltà a immaginare quando sarebbe importante. In ogni caso, dove è importante, dovresti già sapere quale ti stai aspettando. Nei casi in cui non lo sai, allora tutto ciò che di solito devi preoccuparti è se l'oggetto cova come un'anatra. Se è importante e non lo sai, allora sembra un problema di progettazione per il quale scoprire la risposta è solo un cerotto. Sono d'accordo che è una domanda legittima, però. – Chuck

risposta

5

Il modo più sicuro di sicurezza che conosco è class_isMetaClass(object_getClass(yourObject)). (Funziona perché le classi sono sempre istanze di metaclassi.)