For iOS, given some NSDictionary
key/value pairs where strings values were added as NSString
and int
/float
values were added as NSNumber
, is there a way to test the data type of a value to see whether it is NSString
or NSNumber
?
NSObject offers:
- (BOOL)isKindOfClass:(Class)aClass
if obj is the value you get out of the NSDictionary then checkout:
[obj isKindOfClass:[NSString class]]
[obj isKindOfClass:[NSNumber class]]
If you check for these and you don't expect anything but NSString or NSNumber in the dictionary, then I would add an NSAssert in the else block.
There's more comments here on nuances of NSString and NSCFString:
In Objective-C, how do I test the object type?
Dictionary return an id you can check its class type as follows
if ([[dictionary valueForKey:@"key"] isKindOfClass:[NSString class]]) {
NSLog(@"it is a string");
}
else {
NSLog(@"it is number");
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With