From 8a8ac771b11383986f28a706ba550775ed450b61 Mon Sep 17 00:00:00 2001 From: Scott Wolchok Date: Tue, 30 Aug 2016 17:45:38 -0700 Subject: [PATCH] clean up NSClassFromString in Libraries/ Reviewed By: adamjernst Differential Revision: D3794507 fbshipit-source-id: 5f6f8d3ccfcb8a7339532ca1c092750b85d622d2 --- React/Base/RCTUtils.m | 3 ++- React/Modules/RCTDevMenu.m | 10 ++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/React/Base/RCTUtils.m b/React/Base/RCTUtils.m index b2d9877295f1e0..b519bd9949d2e1 100644 --- a/React/Base/RCTUtils.m +++ b/React/Base/RCTUtils.m @@ -11,6 +11,7 @@ #import #import +#import #import @@ -434,7 +435,7 @@ BOOL RCTRunningInTestEnvironment(void) static BOOL isTestEnvironment = NO; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ - isTestEnvironment = NSClassFromString(@"SenTestCase") || NSClassFromString(@"XCTest"); + isTestEnvironment = objc_lookUpClass("SenTestCase") || objc_lookUpClass("XCTest"); }); return isTestEnvironment; } diff --git a/React/Modules/RCTDevMenu.m b/React/Modules/RCTDevMenu.m index 1605c4057c7871..66181785b1aa0a 100644 --- a/React/Modules/RCTDevMenu.m +++ b/React/Modules/RCTDevMenu.m @@ -9,6 +9,8 @@ #import "RCTDevMenu.h" +#import + #import "RCTAssert.h" #import "RCTBridge+Private.h" #import "RCTDefines.h" @@ -255,7 +257,7 @@ - (NSURL *)packagerURL // TODO: Move non-UI logic into separate RCTDevSettings module - (void)connectPackager { - Class webSocketManagerClass = NSClassFromString(@"RCTWebSocketManager"); + Class webSocketManagerClass = objc_lookUpClass("RCTWebSocketManager"); id webSocketManager = (id )[webSocketManagerClass sharedInstance]; NSURL *url = [self packagerURL]; if (url) { @@ -281,7 +283,7 @@ - (void)processTarget:(NSString *)target action:(NSString *)action options:(NSDi if ([target isEqualToString:@"bridge"]) { if ([action isEqualToString:@"reload"]) { if ([options[@"debug"] boolValue]) { - _bridge.executorClass = NSClassFromString(@"RCTWebSocketExecutor"); + _bridge.executorClass = objc_lookUpClass("RCTWebSocketExecutor"); } [_bridge reload]; } @@ -453,7 +455,7 @@ - (void)addItem:(RCTDevMenuItem *)item [weakSelf reload]; }]]; - Class jsDebuggingExecutorClass = NSClassFromString(@"RCTWebSocketExecutor"); + Class jsDebuggingExecutorClass = objc_lookUpClass("RCTWebSocketExecutor"); if (!jsDebuggingExecutorClass) { [items addObject:[RCTDevMenuItem buttonItemWithTitle:[NSString stringWithFormat:@"%@ Debugger Unavailable", _webSocketExecutorName] handler:^{ UIAlertView *alert = RCTAlertView( @@ -637,7 +639,7 @@ - (void)setExecutorClass:(Class)executorClass // needed to prevent overriding a custom executor with the default if a // custom executor has been set directly on the bridge if (executorClass == Nil && - _bridge.executorClass != NSClassFromString(@"RCTWebSocketExecutor")) { + _bridge.executorClass != objc_lookUpClass("RCTWebSocketExecutor")) { return; }