From 7c95db11d75e2323105e02ba4e1b953e26145cde Mon Sep 17 00:00:00 2001 From: Aditya Kumar Date: Fri, 3 Nov 2017 16:28:47 -0700 Subject: [PATCH] Return NSString instead of SEL Reviewed By: javache Differential Revision: D6211964 fbshipit-source-id: 4a55d56d0cc4be10460087810f62134676983203 --- .../RCTMethodArgumentTests.m | 62 +++++++++---------- React/Base/RCTModuleMethod.mm | 8 +-- 2 files changed, 35 insertions(+), 35 deletions(-) diff --git a/RNTester/RNTesterUnitTests/RCTMethodArgumentTests.m b/RNTester/RNTesterUnitTests/RCTMethodArgumentTests.m index 8c266cdce9a..ee36570e910 100644 --- a/RNTester/RNTesterUnitTests/RCTMethodArgumentTests.m +++ b/RNTester/RNTesterUnitTests/RCTMethodArgumentTests.m @@ -19,14 +19,14 @@ @implementation RCTMethodArgumentTests -extern SEL RCTParseMethodSignature(const char *methodSignature, NSArray **argTypes); +extern NSString *RCTParseMethodSignature(const char *methodSignature, NSArray **argTypes); - (void)testOneArgument { NSArray *arguments; const char *methodSignature = "foo:(NSInteger)foo"; - SEL selector = RCTParseMethodSignature(methodSignature, &arguments); - XCTAssertEqualObjects(NSStringFromSelector(selector), @"foo:"); + NSString *selector = RCTParseMethodSignature(methodSignature, &arguments); + XCTAssertEqualObjects(selector, @"foo:"); XCTAssertEqual(arguments.count, (NSUInteger)1); XCTAssertEqualObjects(((RCTMethodArgument *)arguments[0]).type, @"NSInteger"); } @@ -35,8 +35,8 @@ extern SEL RCTParseMethodSignature(const char *methodSignature, NSArray **argTyp { NSArray *arguments; const char *methodSignature = "foo:(NSInteger)foo bar:(BOOL)bar"; - SEL selector = RCTParseMethodSignature(methodSignature, &arguments); - XCTAssertEqualObjects(NSStringFromSelector(selector), @"foo:bar:"); + NSString *selector = RCTParseMethodSignature(methodSignature, &arguments); + XCTAssertEqualObjects(selector, @"foo:bar:"); XCTAssertEqual(arguments.count, (NSUInteger)2); XCTAssertEqualObjects(((RCTMethodArgument *)arguments[0]).type, @"NSInteger"); XCTAssertEqualObjects(((RCTMethodArgument *)arguments[1]).type, @"BOOL"); @@ -46,8 +46,8 @@ extern SEL RCTParseMethodSignature(const char *methodSignature, NSArray **argTyp { NSArray *arguments; const char *methodSignature = "foo : (NSInteger)foo bar : (BOOL) bar"; - SEL selector = RCTParseMethodSignature(methodSignature, &arguments); - XCTAssertEqualObjects(NSStringFromSelector(selector), @"foo:bar:"); + NSString *selector = RCTParseMethodSignature(methodSignature, &arguments); + XCTAssertEqualObjects(selector, @"foo:bar:"); XCTAssertEqual(arguments.count, (NSUInteger)2); XCTAssertEqualObjects(((RCTMethodArgument *)arguments[0]).type, @"NSInteger"); XCTAssertEqualObjects(((RCTMethodArgument *)arguments[1]).type, @"BOOL"); @@ -57,8 +57,8 @@ extern SEL RCTParseMethodSignature(const char *methodSignature, NSArray **argTyp { NSArray *arguments; const char *methodSignature = "foo : (NSInteger)foo\nbar : (BOOL) bar"; - SEL selector = RCTParseMethodSignature(methodSignature, &arguments); - XCTAssertEqualObjects(NSStringFromSelector(selector), @"foo:bar:"); + NSString *selector = RCTParseMethodSignature(methodSignature, &arguments); + XCTAssertEqualObjects(selector, @"foo:bar:"); XCTAssertEqual(arguments.count, (NSUInteger)2); XCTAssertEqualObjects(((RCTMethodArgument *)arguments[0]).type, @"NSInteger"); XCTAssertEqualObjects(((RCTMethodArgument *)arguments[1]).type, @"BOOL"); @@ -68,8 +68,8 @@ extern SEL RCTParseMethodSignature(const char *methodSignature, NSArray **argTyp { NSArray *arguments; const char *methodSignature = "foo:(NSInteger)foo:(BOOL)bar"; - SEL selector = RCTParseMethodSignature(methodSignature, &arguments); - XCTAssertEqualObjects(NSStringFromSelector(selector), @"foo::"); + NSString *selector = RCTParseMethodSignature(methodSignature, &arguments); + XCTAssertEqualObjects(selector, @"foo::"); XCTAssertEqual(arguments.count, (NSUInteger)2); XCTAssertEqualObjects(((RCTMethodArgument *)arguments[0]).type, @"NSInteger"); XCTAssertEqualObjects(((RCTMethodArgument *)arguments[1]).type, @"BOOL"); @@ -79,8 +79,8 @@ extern SEL RCTParseMethodSignature(const char *methodSignature, NSArray **argTyp { NSArray *arguments; const char *methodSignature = "foo:foo:bar:bar"; - SEL selector = RCTParseMethodSignature(methodSignature, &arguments); - XCTAssertEqualObjects(NSStringFromSelector(selector), @"foo:::"); + NSString *selector = RCTParseMethodSignature(methodSignature, &arguments); + XCTAssertEqualObjects(selector, @"foo:::"); XCTAssertEqual(arguments.count, (NSUInteger)3); XCTAssertEqualObjects(((RCTMethodArgument *)arguments[0]).type, @"id"); XCTAssertEqualObjects(((RCTMethodArgument *)arguments[1]).type, @"id"); @@ -91,8 +91,8 @@ extern SEL RCTParseMethodSignature(const char *methodSignature, NSArray **argTyp { NSArray *arguments; const char *methodSignature = "foo:(foo::type &)foo bar:(bar::type &)bar"; - SEL selector = RCTParseMethodSignature(methodSignature, &arguments); - XCTAssertEqualObjects(NSStringFromSelector(selector), @"foo:bar:"); + NSString *selector = RCTParseMethodSignature(methodSignature, &arguments); + XCTAssertEqualObjects(selector, @"foo:bar:"); XCTAssertEqual(arguments.count, (NSUInteger)2); XCTAssertEqualObjects(((RCTMethodArgument *)arguments[0]).type, @"foo::type"); XCTAssertEqualObjects(((RCTMethodArgument *)arguments[1]).type, @"bar::type"); @@ -102,8 +102,8 @@ extern SEL RCTParseMethodSignature(const char *methodSignature, NSArray **argTyp { NSArray *arguments; const char *methodSignature = "foo:(__attribute__((unused)) NSString *)foo bar:(__unused BOOL)bar"; - SEL selector = RCTParseMethodSignature(methodSignature, &arguments); - XCTAssertEqualObjects(NSStringFromSelector(selector), @"foo:bar:"); + NSString *selector = RCTParseMethodSignature(methodSignature, &arguments); + XCTAssertEqualObjects(selector, @"foo:bar:"); XCTAssertEqual(arguments.count, (NSUInteger)2); XCTAssertEqualObjects(((RCTMethodArgument *)arguments[0]).type, @"NSString"); XCTAssertEqualObjects(((RCTMethodArgument *)arguments[1]).type, @"BOOL"); @@ -113,8 +113,8 @@ extern SEL RCTParseMethodSignature(const char *methodSignature, NSArray **argTyp { NSArray *arguments; const char *methodSignature = "foo:(nullable NSString *)foo bar:(nonnull NSNumber *)bar baz:(id)baz"; - SEL selector = RCTParseMethodSignature(methodSignature, &arguments); - XCTAssertEqualObjects(NSStringFromSelector(selector), @"foo:bar:baz:"); + NSString *selector = RCTParseMethodSignature(methodSignature, &arguments); + XCTAssertEqualObjects(selector, @"foo:bar:baz:"); XCTAssertEqual(arguments.count, (NSUInteger)3); XCTAssertEqualObjects(((RCTMethodArgument *)arguments[0]).type, @"NSString"); XCTAssertEqualObjects(((RCTMethodArgument *)arguments[1]).type, @"NSNumber"); @@ -128,8 +128,8 @@ extern SEL RCTParseMethodSignature(const char *methodSignature, NSArray **argTyp { NSArray *arguments; const char *methodSignature = "foo:(NSString *)foo bar:(BOOL)bar;"; - SEL selector = RCTParseMethodSignature(methodSignature, &arguments); - XCTAssertEqualObjects(NSStringFromSelector(selector), @"foo:bar:"); + NSString *selector = RCTParseMethodSignature(methodSignature, &arguments); + XCTAssertEqualObjects(selector, @"foo:bar:"); XCTAssertEqual(arguments.count, (NSUInteger)2); XCTAssertEqualObjects(((RCTMethodArgument *)arguments[0]).type, @"NSString"); XCTAssertEqualObjects(((RCTMethodArgument *)arguments[1]).type, @"BOOL"); @@ -139,8 +139,8 @@ extern SEL RCTParseMethodSignature(const char *methodSignature, NSArray **argTyp { NSArray *arguments; const char *methodSignature = "foo:(__unused NSString *)foo bar:(NSNumber *)bar"; - SEL selector = RCTParseMethodSignature(methodSignature, &arguments); - XCTAssertEqualObjects(NSStringFromSelector(selector), @"foo:bar:"); + NSString *selector = RCTParseMethodSignature(methodSignature, &arguments); + XCTAssertEqualObjects(selector, @"foo:bar:"); XCTAssertEqual(arguments.count, (NSUInteger)2); XCTAssertEqualObjects(((RCTMethodArgument *)arguments[0]).type, @"NSString"); XCTAssertEqualObjects(((RCTMethodArgument *)arguments[1]).type, @"NSNumber"); @@ -152,8 +152,8 @@ extern SEL RCTParseMethodSignature(const char *methodSignature, NSArray **argTyp { NSArray *arguments; const char *methodSignature = "foo:(NSArray *)foo;"; - SEL selector = RCTParseMethodSignature(methodSignature, &arguments); - XCTAssertEqualObjects(NSStringFromSelector(selector), @"foo:"); + NSString *selector = RCTParseMethodSignature(methodSignature, &arguments); + XCTAssertEqualObjects(selector, @"foo:"); XCTAssertEqual(arguments.count, (NSUInteger)1); XCTAssertEqualObjects(((RCTMethodArgument *)arguments[0]).type, @"NSStringArray"); } @@ -162,8 +162,8 @@ extern SEL RCTParseMethodSignature(const char *methodSignature, NSArray **argTyp { NSArray *arguments; const char *methodSignature = "foo:(NSArray *> *)foo;"; - SEL selector = RCTParseMethodSignature(methodSignature, &arguments); - XCTAssertEqualObjects(NSStringFromSelector(selector), @"foo:"); + NSString *selector = RCTParseMethodSignature(methodSignature, &arguments); + XCTAssertEqualObjects(selector, @"foo:"); XCTAssertEqual(arguments.count, (NSUInteger)1); XCTAssertEqualObjects(((RCTMethodArgument *)arguments[0]).type, @"NSStringArrayArray"); } @@ -172,8 +172,8 @@ extern SEL RCTParseMethodSignature(const char *methodSignature, NSArray **argTyp { NSArray *arguments; const char *methodSignature = "foo:(NSSet *)foo;"; - SEL selector = RCTParseMethodSignature(methodSignature, &arguments); - XCTAssertEqualObjects(NSStringFromSelector(selector), @"foo:"); + NSString *selector = RCTParseMethodSignature(methodSignature, &arguments); + XCTAssertEqualObjects(selector, @"foo:"); XCTAssertEqual(arguments.count, (NSUInteger)1); XCTAssertEqualObjects(((RCTMethodArgument *)arguments[0]).type, @"NSNumberSet"); } @@ -182,8 +182,8 @@ extern SEL RCTParseMethodSignature(const char *methodSignature, NSArray **argTyp { NSArray *arguments; const char *methodSignature = "foo:(NSDictionary *)foo;"; - SEL selector = RCTParseMethodSignature(methodSignature, &arguments); - XCTAssertEqualObjects(NSStringFromSelector(selector), @"foo:"); + NSString *selector = RCTParseMethodSignature(methodSignature, &arguments); + XCTAssertEqualObjects(selector, @"foo:"); XCTAssertEqual(arguments.count, (NSUInteger)1); XCTAssertEqualObjects(((RCTMethodArgument *)arguments[0]).type, @"NSNumberDictionary"); } diff --git a/React/Base/RCTModuleMethod.mm b/React/Base/RCTModuleMethod.mm index 78d7e5d9945..9e1f534dc5f 100644 --- a/React/Base/RCTModuleMethod.mm +++ b/React/Base/RCTModuleMethod.mm @@ -129,8 +129,8 @@ static BOOL checkCallbackMultipleInvocations(BOOL *didInvoke) { } #endif -SEL RCTParseMethodSignature(const char *, NSArray **); -SEL RCTParseMethodSignature(const char *input, NSArray **arguments) +extern NSString *RCTParseMethodSignature(const char *input, NSArray **arguments); +NSString *RCTParseMethodSignature(const char *input, NSArray **arguments) { RCTSkipWhitespace(&input); @@ -175,7 +175,7 @@ SEL RCTParseMethodSignature(const char *input, NSArray **ar } *arguments = [args copy]; - return NSSelectorFromString(selector); + return selector; } RCT_EXTERN_C_END @@ -193,7 +193,7 @@ RCT_EXTERN_C_END - (void)processMethodSignature { NSArray *arguments; - _selector = RCTParseMethodSignature(_methodInfo->objcName, &arguments); + _selector = NSSelectorFromString(RCTParseMethodSignature(_methodInfo->objcName, &arguments)); RCTAssert(_selector, @"%s is not a valid selector", _methodInfo->objcName); // Create method invocation