diff --git a/Libraries/ActionSheetIOS/RCTActionSheetManager.m b/Libraries/ActionSheetIOS/RCTActionSheetManager.m index a736387fe..56df9f38d 100644 --- a/Libraries/ActionSheetIOS/RCTActionSheetManager.m +++ b/Libraries/ActionSheetIOS/RCTActionSheetManager.m @@ -9,6 +9,7 @@ #import "RCTActionSheetManager.h" +#import "RCTConvert.h" #import "RCTLog.h" #import "RCTUtils.h" @@ -72,13 +73,13 @@ RCT_EXPORT_METHOD(showShareActionSheetWithOptions:(NSDictionary *)options successCallback:(RCTResponseSenderBlock)successCallback) { NSMutableArray *items = [NSMutableArray array]; - id message = options[@"message"]; - id url = options[@"url"]; - if ([message isKindOfClass:[NSString class]]) { + NSString *message = [RCTConvert NSString:options[@"message"]]; + if (message) { [items addObject:message]; } - if ([url isKindOfClass:[NSString class]]) { - [items addObject:[NSURL URLWithString:url]]; + NSURL *URL = [RCTConvert NSURL:options[@"url"]]; + if (URL) { + [items addObject:URL]; } if ([items count] == 0) { failureCallback(@[@"No `url` or `message` to share"]); diff --git a/Libraries/Image/RCTImageLoader.m b/Libraries/Image/RCTImageLoader.m index 338475029..34a7dc2fc 100644 --- a/Libraries/Image/RCTImageLoader.m +++ b/Libraries/Image/RCTImageLoader.m @@ -127,7 +127,7 @@ static UIImage *RCTScaledImageForAsset(ALAssetRepresentation *representation, completionBlock:(RCTImageLoaderCompletionBlock)completionBlock { if ([imageTag hasPrefix:@"assets-library://"]) { - [[self assetsLibrary] assetForURL:[NSURL URLWithString:imageTag] resultBlock:^(ALAsset *asset) { + [[self assetsLibrary] assetForURL:[RCTConvert NSURL:imageTag] resultBlock:^(ALAsset *asset) { if (asset) { // ALAssetLibrary API is async and will be multi-threaded. Loading a few full // resolution images at once will spike the memory up to store the image data, @@ -210,7 +210,7 @@ static UIImage *RCTScaledImageForAsset(ALAssetRepresentation *representation, }]; return ^{}; } else if ([imageTag hasPrefix:@"http"]) { - NSURL *url = [NSURL URLWithString:imageTag]; + NSURL *url = [RCTConvert NSURL:imageTag]; if (!url) { NSString *errorMessage = [NSString stringWithFormat:@"Invalid URL: %@", imageTag]; RCTDispatchCallbackOnMainQueue(completionBlock, RCTErrorWithMessage(errorMessage), nil); diff --git a/Libraries/WebSocket/RCTWebSocketExecutor.m b/Libraries/WebSocket/RCTWebSocketExecutor.m index 888333edb..df661a54b 100644 --- a/Libraries/WebSocket/RCTWebSocketExecutor.m +++ b/Libraries/WebSocket/RCTWebSocketExecutor.m @@ -13,6 +13,7 @@ #import "RCTWebSocketExecutor.h" +#import "RCTConvert.h" #import "RCTLog.h" #import "RCTSparseArray.h" #import "RCTUtils.h" @@ -38,7 +39,7 @@ RCT_EXPORT_MODULE() - (instancetype)init { - return [self initWithURL:[NSURL URLWithString:@"http://localhost:8081/debugger-proxy"]]; + return [self initWithURL:[RCTConvert NSURL:@"http://localhost:8081/debugger-proxy"]]; } - (instancetype)initWithURL:(NSURL *)URL diff --git a/React/Base/RCTBatchedBridge.m b/React/Base/RCTBatchedBridge.m index 39717a796..194689e38 100644 --- a/React/Base/RCTBatchedBridge.m +++ b/React/Base/RCTBatchedBridge.m @@ -777,7 +777,7 @@ RCT_NOT_IMPLEMENTED(-initWithBundleURL:(__unused NSURL *)bundleURL NSURL *bundleURL = _parentBridge.bundleURL; NSString *port = bundleURL.port ? [@":" stringByAppendingString:bundleURL.port.stringValue] : @""; NSString *URLString = [NSString stringWithFormat:@"%@://%@%@/profile", bundleURL.scheme, bundleURL.host, port]; - NSURL *URL = [NSURL URLWithString:URLString]; + NSURL *URL = [RCTConvert NSURL:URLString]; NSMutableURLRequest *URLRequest = [NSMutableURLRequest requestWithURL:URL]; URLRequest.HTTPMethod = @"POST"; [URLRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; diff --git a/React/Base/RCTRedBox.m b/React/Base/RCTRedBox.m index 12a36deec..901fa34dc 100644 --- a/React/Base/RCTRedBox.m +++ b/React/Base/RCTRedBox.m @@ -10,6 +10,7 @@ #import "RCTRedBox.h" #import "RCTBridge.h" +#import "RCTConvert.h" #import "RCTDefines.h" #import "RCTUtils.h" @@ -102,7 +103,7 @@ RCT_NOT_IMPLEMENTED(-initWithCoder:(NSCoder *)aDecoder) NSData *stackFrameJSON = [RCTJSONStringify(stackFrame, nil) dataUsingEncoding:NSUTF8StringEncoding]; NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)[stackFrameJSON length]]; NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; - request.URL = [NSURL URLWithString:@"http://localhost:8081/open-stack-frame"]; + request.URL = [RCTConvert NSURL:@"http://localhost:8081/open-stack-frame"]; request.HTTPMethod = @"POST"; request.HTTPBody = stackFrameJSON; [request setValue:postLength forHTTPHeaderField:@"Content-Length"];