2012-07-11 9 views

Respuesta

25

NSObject ofrece:

- (BOOL)isKindOfClass:(Class)aClass 

si obj es el valor que se obtiene de la NSDictionary continuación, la caja:

[obj isKindOfClass:[NSString class]] 
[obj isKindOfClass:[NSNumber class]] 

Si marca para estos y usted no espera otra cosa que NSString o NSNumber en el diccionario, entonces agregaría un NSAssert en el bloque else.

Hay más comentarios aquí en matices de NSString y NSCFString:

In Objective-C, how do I test the object type?

6

diccionario devuelve un ID se puede comprobar su tipo de clase de la siguiente manera

if ([[dictionary valueForKey:@"key"] isKindOfClass:[NSString class]]) { 
     NSLog(@"it is a string"); 
    } 
    else { 
     NSLog(@"it is number"); 
    } 
+0

no funciona cuando el objeto es nil o [NSNull null]. – gnasher729

Cuestiones relacionadas