@interface Country : NSObject
- (instancetype)initWithInfo:
(NSDictionary<NSString *, id> *)info;
- (id)objectForKeyedSubscript:
(NSString *)key;
@end
@implementation Country {
NSDictionary<NSString *, id> *_info;
}
- (instancetype)initWithInfo:
(NSDictionary<NSString *, id> *)info {
self = [super init];
if (self) {
_info = info;
}
return self;
}
//id returns a value of any type
- (id)objectForKeyedSubscript:
(NSString *)key {
return _info[key];
}
@end
Country *france = [[Country alloc]
initWithInfo:@{
@"Name": @"France",
@"Population": @66991000}];
NSString *name = france[@"Name"];
//name is "France"
NSNumber *population = france[@"Population"];
//population is 66991000