diff --git a/React/Base/RCTBundleURLProvider.m b/React/Base/RCTBundleURLProvider.m index c3142bae8..21daefe30 100644 --- a/React/Base/RCTBundleURLProvider.m +++ b/React/Base/RCTBundleURLProvider.m @@ -69,9 +69,23 @@ static NSURL *serverRootWithHost(NSString *host) - (BOOL)isPackagerRunning:(NSString *)host { NSURL *url = [serverRootWithHost(host) URLByAppendingPathComponent:@"status"]; + + NSURLSession *session = [NSURLSession sharedSession]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; - NSURLResponse *response; - NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:NULL]; + __block NSURLResponse *response; + __block NSData *data; + + dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); + [[session dataTaskWithRequest:request + completionHandler:^(NSData *d, + NSURLResponse *res, + __unused NSError *err) { + data = d; + response = res; + dispatch_semaphore_signal(semaphore); + }] resume]; + dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER); + NSString *status = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; return [status isEqualToString:@"packager-status:running"]; } diff --git a/React/DevSupport/RCTDevMenu.m b/React/DevSupport/RCTDevMenu.m index d46820940..95a090c48 100644 --- a/React/DevSupport/RCTDevMenu.m +++ b/React/DevSupport/RCTDevMenu.m @@ -217,7 +217,7 @@ RCT_EXPORT_MODULE() preferredStyle:UIAlertControllerStyleAlert]; __weak typeof(alertController) weakAlertController = alertController; [alertController addAction: - [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){ + [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(__unused UIAlertAction *action){ [weakAlertController dismissViewControllerAnimated:YES completion:nil]; }]]; [RCTPresentedViewController() presentViewController:alertController animated:YES completion:NULL]; @@ -251,7 +251,7 @@ RCT_EXPORT_MODULE() preferredStyle:UIAlertControllerStyleAlert]; __weak typeof(alertController) weakAlertController = alertController; [alertController addAction: - [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){ + [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(__unused UIAlertAction *action){ [weakAlertController dismissViewControllerAnimated:YES completion:nil]; }]]; [RCTPresentedViewController() presentViewController:alertController animated:YES completion:NULL]; diff --git a/React/DevSupport/RCTInspectorDevServerHelper.mm b/React/DevSupport/RCTInspectorDevServerHelper.mm index e157ef5da..aff1cb6fb 100644 --- a/React/DevSupport/RCTInspectorDevServerHelper.mm +++ b/React/DevSupport/RCTInspectorDevServerHelper.mm @@ -91,8 +91,8 @@ static void displayErrorAlert(UIViewController *view, NSString *message) { __weak UIViewController *viewCapture = view; [[[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler: - ^(NSData *_Nullable data, - NSURLResponse *_Nullable response, + ^(__unused NSData *_Nullable data, + __unused NSURLResponse *_Nullable response, NSError *_Nullable error) { UIViewController *viewCaptureStrong = viewCapture; if (error != nullptr && viewCaptureStrong != nullptr) { diff --git a/React/Inspector/RCTInspectorPackagerConnection.m b/React/Inspector/RCTInspectorPackagerConnection.m index 5d0ed99ab..82d3d7c7e 100644 --- a/React/Inspector/RCTInspectorPackagerConnection.m +++ b/React/Inspector/RCTInspectorPackagerConnection.m @@ -195,7 +195,7 @@ RCT_NOT_IMPLEMENTED(- (instancetype)init) } // analogous to InspectorPackagerConnection.Connection.onFailure(...) -- (void)webSocket:(RCTSRWebSocket *)webSocket didFailWithError:(NSError *)error +- (void)webSocket:(__unused RCTSRWebSocket *)webSocket didFailWithError:(NSError *)error { if (_webSocket) { [self abort:@"Websocket exception" @@ -207,7 +207,7 @@ RCT_NOT_IMPLEMENTED(- (instancetype)init) } // analogous to InspectorPackagerConnection.Connection.onMessage(...) -- (void)webSocket:(RCTSRWebSocket *)webSocket didReceiveMessage:(id)opaqueMessage +- (void)webSocket:(__unused RCTSRWebSocket *)webSocket didReceiveMessage:(id)opaqueMessage { // warn but don't die on unrecognized messages if (![opaqueMessage isKindOfClass:[NSString class]]) { @@ -228,9 +228,9 @@ RCT_NOT_IMPLEMENTED(- (instancetype)init) } // analogous to InspectorPackagerConnection.Connection.onClosed(...) -- (void)webSocket:(RCTSRWebSocket *)webSocket didCloseWithCode:(NSInteger)code - reason:(NSString *)reason - wasClean:(BOOL)wasClean +- (void)webSocket:(__unused RCTSRWebSocket *)webSocket didCloseWithCode:(__unused NSInteger)code + reason:(__unused NSString *)reason + wasClean:(__unused BOOL)wasClean { _webSocket = nil; [self closeAllConnections]; diff --git a/React/Modules/RCTRedBoxExtraDataViewController.m b/React/Modules/RCTRedBoxExtraDataViewController.m index c9e1274ae..054ec15d5 100644 --- a/React/Modules/RCTRedBoxExtraDataViewController.m +++ b/React/Modules/RCTRedBoxExtraDataViewController.m @@ -181,17 +181,17 @@ [_tableView reloadData]; } -- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section +- (NSInteger)tableView:(__unused UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [[_extraData objectAtIndex:section] count]; } -- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section +- (CGFloat)tableView:(__unused UITableView *)tableView heightForHeaderInSection:(__unused NSInteger)section { return 40; } -- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section +- (UIView *)tableView:(__unused UITableView *)tableView viewForHeaderInSection:(NSInteger)section { UIView *view = [UIView new]; view.backgroundColor = [UIColor colorWithRed:1 green:0 blue:0 alpha:1]; @@ -237,7 +237,7 @@ return cell; } -- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView +- (NSInteger)numberOfSectionsInTableView:(__unused UITableView *)tableView { return _extraDataTitle.count; } diff --git a/React/React.xcodeproj/project.pbxproj b/React/React.xcodeproj/project.pbxproj index 48033e738..ada4ecd12 100644 --- a/React/React.xcodeproj/project.pbxproj +++ b/React/React.xcodeproj/project.pbxproj @@ -4751,6 +4751,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_COMMA = NO; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_SUSPICIOUS_MOVES = YES; DEBUG_INFORMATION_FORMAT = dwarf; @@ -4766,6 +4767,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_COMMA = NO; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_SUSPICIOUS_MOVES = YES; COPY_PHASE_STRIP = NO; @@ -4784,6 +4786,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_WARN_COMMA = NO; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_SUSPICIOUS_MOVES = YES; DEBUG_INFORMATION_FORMAT = dwarf; @@ -4807,6 +4810,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_WARN_COMMA = NO; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_SUSPICIOUS_MOVES = YES; COPY_PHASE_STRIP = NO; @@ -4830,6 +4834,7 @@ buildSettings = { CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_WARN_COMMA = NO; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_SUSPICIOUS_MOVES = YES; @@ -4849,6 +4854,7 @@ buildSettings = { CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_WARN_COMMA = NO; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_SUSPICIOUS_MOVES = YES; @@ -4869,6 +4875,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_WARN_COMMA = NO; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_SUSPICIOUS_MOVES = YES; DEBUG_INFORMATION_FORMAT = dwarf; @@ -4893,6 +4900,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_WARN_COMMA = NO; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_SUSPICIOUS_MOVES = YES; COPY_PHASE_STRIP = NO; @@ -4916,6 +4924,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_COMMA = NO; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_SUSPICIOUS_MOVES = YES; DEBUG_INFORMATION_FORMAT = dwarf; @@ -4932,6 +4941,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_COMMA = NO; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_SUSPICIOUS_MOVES = YES; COPY_PHASE_STRIP = NO; @@ -5200,6 +5210,7 @@ buildSettings = { CLANG_CXX_LANGUAGE_STANDARD = "c++14"; CLANG_STATIC_ANALYZER_MODE = deep; + CLANG_WARN_COMMA = NO; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "RCT_DEBUG=1", @@ -5225,6 +5236,7 @@ buildSettings = { CLANG_CXX_LANGUAGE_STANDARD = "c++14"; CLANG_STATIC_ANALYZER_MODE = deep; + CLANG_WARN_COMMA = NO; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", "RCT_METRO_PORT=${RCT_METRO_PORT}", diff --git a/React/Views/RCTMaskedView.m b/React/Views/RCTMaskedView.m index e9411c29a..dc393c2be 100644 --- a/React/Views/RCTMaskedView.m +++ b/React/Views/RCTMaskedView.m @@ -24,7 +24,7 @@ } } -- (void)displayLayer:(CALayer *)layer +- (void)displayLayer:(__unused CALayer *)layer { // RCTView uses displayLayer to do border rendering. // We don't need to do that in RCTMaskedView, so we diff --git a/React/Views/SafeAreaView/RCTSafeAreaView.m b/React/Views/SafeAreaView/RCTSafeAreaView.m index 7e3c8562e..8fe48113a 100644 --- a/React/Views/SafeAreaView/RCTSafeAreaView.m +++ b/React/Views/SafeAreaView/RCTSafeAreaView.m @@ -39,7 +39,9 @@ RCT_NOT_IMPLEMENTED(- (instancetype)initWithFrame:(CGRect)frame) { #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 110000 /* __IPHONE_11_0 */ if (self.isSupportedByOS) { - return self.safeAreaInsets; + if (@available(iOS 11.0, *)) { + return self.safeAreaInsets; + } } #endif return self.emulateUnlessSupported ? self.emulatedSafeAreaInsets : UIEdgeInsetsZero; diff --git a/React/Views/ScrollView/RCTScrollView.m b/React/Views/ScrollView/RCTScrollView.m index ac63fc474..d143c73de 100644 --- a/React/Views/ScrollView/RCTScrollView.m +++ b/React/Views/ScrollView/RCTScrollView.m @@ -1120,7 +1120,7 @@ RCT_SET_AND_PRESERVE_OFFSET(setScrollIndicatorInsets, scrollIndicatorInsets, UIE #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 110000 /* __IPHONE_11_0 */ - (void)setContentInsetAdjustmentBehavior:(UIScrollViewContentInsetAdjustmentBehavior)behavior -{ +API_AVAILABLE(ios(11.0)){ // `contentInsetAdjustmentBehavior` is available since iOS 11. if ([_scrollView respondsToSelector:@selector(setContentInsetAdjustmentBehavior:)]) { CGPoint contentOffset = _scrollView.contentOffset;