@interface Tiger : NSObject
@end
@implementation Tiger
@end
//runtime type checks
NSString *describe(id obj) {
if (obj == nil) {
return @"Empty value";
}
if ([obj isKindOfClass:[Tiger class]]) {
return @"Tiger!!!";
}
if ([obj isKindOfClass:[NSNumber class]]) {
return @"Number type";
}
if ([obj isKindOfClass:[NSString class]]) {
return [NSString stringWithFormat:
@"string value '%@'", obj];
}
return @"Unknown type";
}
NSString *result = describe([Tiger new]);
//result is "Tiger!!!"
result = describe(@"test");
//result is "string value 'test'"
result = describe(@5);
//result is "Number type"