mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-24 04:16:00 +08:00
Replaced RegExp method parser with recursive descent
Summary: public This diff replaces the RegEx module method parser with a handwritten recursive descent parser that's faster and easier to maintain. The new parser is ~8 times faster when tested on the UIManager.managerChildren() method, and uses ~1/10 as much RAM. The new parser also supports lightweight generics, and is more tolerant of white space. (This means that you now can – and should – use types like `NSArray<NSString *> *` for your exported properties and method arguments, instead of `NSStringArray`). Reviewed By: jspahrsummers Differential Revision: D2736636 fb-gh-sync-id: f6a11431935fa8acc8ac36f3471032ec9a1c8490
This commit is contained in:
committed by
facebook-github-bot-4
parent
ce7c0b735f
commit
88ac40666c
@@ -114,7 +114,7 @@ RCT_NOT_IMPLEMENTED(- (instancetype)init)
|
||||
if ([managerClass respondsToSelector:selector]) {
|
||||
NSArray<NSString *> *typeAndKeyPath =
|
||||
((NSArray<NSString *> *(*)(id, SEL))objc_msgSend)(managerClass, selector);
|
||||
type = NSSelectorFromString([typeAndKeyPath[0] stringByAppendingString:@":"]);
|
||||
type = RCTConvertSelectorForType(typeAndKeyPath[0]);
|
||||
keyPath = typeAndKeyPath.count > 1 ? typeAndKeyPath[1] : nil;
|
||||
} else {
|
||||
propBlock = ^(__unused id view, __unused id json) {};
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
#import "RCTPickerManager.h"
|
||||
|
||||
#import "RCTBridge.h"
|
||||
#import "RCTConvert.h"
|
||||
#import "RCTPicker.h"
|
||||
|
||||
@implementation RCTPickerManager
|
||||
@@ -22,7 +21,7 @@ RCT_EXPORT_MODULE()
|
||||
return [RCTPicker new];
|
||||
}
|
||||
|
||||
RCT_EXPORT_VIEW_PROPERTY(items, NSDictionaryArray)
|
||||
RCT_EXPORT_VIEW_PROPERTY(items, NSArray<NSDictionary *>)
|
||||
RCT_EXPORT_VIEW_PROPERTY(selectedIndex, NSInteger)
|
||||
RCT_EXPORT_VIEW_PROPERTY(onChange, RCTBubblingEventBlock)
|
||||
RCT_EXPORT_VIEW_PROPERTY(color, UIColor)
|
||||
|
||||
@@ -22,7 +22,7 @@ RCT_EXPORT_MODULE()
|
||||
return [RCTSegmentedControl new];
|
||||
}
|
||||
|
||||
RCT_EXPORT_VIEW_PROPERTY(values, NSStringArray)
|
||||
RCT_EXPORT_VIEW_PROPERTY(values, NSArray<NSString *>)
|
||||
RCT_EXPORT_VIEW_PROPERTY(selectedIndex, NSInteger)
|
||||
RCT_EXPORT_VIEW_PROPERTY(tintColor, UIColor)
|
||||
RCT_EXPORT_VIEW_PROPERTY(momentary, BOOL)
|
||||
|
||||
Reference in New Issue
Block a user