1#import <EXNotifications/NSDictionary+EXNotificationsVerifyingClass.h>
2
3static NSString * const invalidValueExceptionName = @"Value of invalid class encountered";
4static NSString * const invalidValueClassReasonFormat = @"Value under key `%@` is of class %@, while %@ was expected.";
5
6@implementation NSDictionary (EXNotificationsVerifyingClass)
7
8- (id)objectForKey:(id)aKey verifyingClass:(__unsafe_unretained Class)klass
9{
10  id obj = [self objectForKey:aKey];
11  if (!obj || [obj isKindOfClass:klass]) {
12    return obj;
13  }
14
15  NSString *reason = [NSString stringWithFormat:invalidValueClassReasonFormat, aKey, NSStringFromClass([obj class]), NSStringFromClass(klass)];
16  @throw [NSException exceptionWithName:invalidValueExceptionName reason:reason userInfo:nil];
17}
18
19@end
20