// // NSObject+RNBranch.m // RNBranch // // Created by Jimmy Dee on 1/26/17. // Copyright © 2017 Branch Metrics. All rights reserved. // #import #import "NSObject+RNBranch.h" #import "RNBranchProperty.h" @implementation NSObject(RNBranch) + (NSDictionary *)supportedProperties { return @{}; } - (void)setSupportedPropertiesWithMap:(NSDictionary *)map { for (NSString *key in map.allKeys) { RNBranchProperty *property = self.class.supportedProperties[key]; if (!property) { RCTLogWarn(@"\"%@\" is not a supported property for %@.", key, NSStringFromClass(self.class)); continue; } id value = map[key]; Class type = property.type; if (![value isKindOfClass:type]) { RCTLogWarn(@"\"%@\" requires a value of type %@.", key, NSStringFromClass(type)); continue; } #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" [self performSelector:property.setterSelector withObject:value]; #pragma clang diagnostic pop } } @end