2012-07-11 16 views
14

Dla iOS, biorąc pod uwagę pewne NSDictionary pary klucz/wartość, gdy wartości strings dodano jako NSString i int/float wartości zostały dodane jako NSNumber, czy jest jakiś sposób, aby sprawdzić typ danych wartości, aby zobaczyć czy jest NSString lub NSNumber?W NSDictionary można określić typ danych wartości?

Odpowiedz

25

NSObject oferuje:

- (BOOL)isKindOfClass:(Class)aClass 

jeśli obj to wartość wyjść z ówczesnego NSDictionary kasie:

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

Jeśli zaznaczysz dla nich i nie bynajmniej NSString lub oczekiwać NSNumber w słowniku, a następnie dodałbym NSAssert w bloku else.

Nie

więcej komentarzy tutaj na niuanse NSString i NSCFString:

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

6

słownik powrócić identyfikator można sprawdzić jej typ klasy następująco

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

nie działa, gdy obiekt jest nil lub [NSNull null]. – gnasher729

Powiązane problemy