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