1// Copyright 2018-present 650 Industries. All rights reserved. 2 3#import <EXUpdates/EXDeferredRCTRootView.h> 4 5@interface EXNoopUIView : UIView 6 7@end 8 9@implementation EXNoopUIView 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 EXDeferredRCTRootView 29 30#pragma clang diagnostic push 31#pragma clang diagnostic ignored "-Wobjc-designated-initializers" 32 33- (instancetype)initWithBridge:(RCTBridge *)bridge 34 moduleName:(NSString *)moduleName 35 initialProperties:(NSDictionary *)initialProperties 36{ 37 // RCTRootView throws an exception for default initializers 38 // and other designated initializers requires a real bridge. 39 // We use a trick here to initialize a NoopUIView and cast back to EXDeferredRCTRootView. 40 self = (EXDeferredRCTRootView *)[[EXNoopUIView alloc] initWithFrame:CGRectZero]; 41 return self; 42} 43 44#pragma clang diagnostic pop 45 46@end 47 48