1// Copyright 2018-present 650 Industries. All rights reserved. 2 3#import <EXDevLauncher/EXDevLauncherDeferredRCTBridge.h> 4 5@interface EXDevLauncherNoopNSObject : NSObject 6 7@end 8 9@implementation EXDevLauncherNoopNSObject 10 11- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector 12{ 13 NSMethodSignature *signature = [super methodSignatureForSelector:aSelector]; 14 if (!signature) { 15 signature = [NSMethodSignature signatureWithObjCTypes:"@@:"]; 16 } 17 return signature; 18} 19 20- (void)forwardInvocation:(NSInvocation *)anInvocation 21{ 22 id nilPtr = nil; 23 [anInvocation setReturnValue:&nilPtr]; 24} 25 26@end 27 28@implementation EXDevLauncherDeferredRCTBridge 29 30#pragma clang diagnostic push 31#pragma clang diagnostic ignored "-Wobjc-designated-initializers" 32 33- (instancetype)initWithDelegate:(id<RCTBridgeDelegate>)delegate launchOptions:(NSDictionary *)launchOptions 34{ 35 // RCTBridge throws an exception for default initializer 36 // and other designated initializers will create a real bridge. 37 // We use a trick here to initialize a NoopNSObject and cast back to EXDevLauncherDeferredRCTBridge. 38 self = (EXDevLauncherDeferredRCTBridge *)[EXDevLauncherNoopNSObject new]; 39 return self; 40} 41 42#pragma clang diagnostic pop 43 44@end 45