react-native-navigation的迁移库

RNNOptions.m 642B

123456789101112131415161718192021222324252627282930
  1. #import "RNNOptions.h"
  2. @implementation RNNOptions
  3. -(instancetype)initWithDict:(NSDictionary *)dict {
  4. self = [super init];
  5. [self mergeWith:dict];
  6. return self;
  7. }
  8. - (void)applyOn:(UIViewController *)viewController defaultOptions:(RNNOptions *)defaultOptions {
  9. [defaultOptions applyOn:viewController];
  10. [self applyOn:viewController];
  11. }
  12. -(void)mergeWith:(NSDictionary *)otherOptions {
  13. for (id key in otherOptions) {
  14. if ([self hasProperty:key]) {
  15. [self setValue:[otherOptions objectForKey:key] forKey:key];
  16. }
  17. }
  18. }
  19. - (BOOL)hasProperty:(NSString*)propName {
  20. return [self respondsToSelector:NSSelectorFromString(propName)];
  21. }
  22. @end