From 45a8aa6a8fb920438d651108ec15cdf00eabb18d Mon Sep 17 00:00:00 2001 From: Adam Hunter Date: Thu, 22 Oct 2015 13:29:40 -0700 Subject: [PATCH] [ios] Fix for a crash on iPod Touch related to carrier vendor Reverts #2691, which only fixed simulator crashing. Refs #2687 --- platform/ios/MGLMapboxEvents.m | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/platform/ios/MGLMapboxEvents.m b/platform/ios/MGLMapboxEvents.m index 953e20022..a0f87eeab 100644 --- a/platform/ios/MGLMapboxEvents.m +++ b/platform/ios/MGLMapboxEvents.m @@ -76,7 +76,6 @@ const NSTimeInterval MGLFlushInterval = 60; _scale = [UIScreen mainScreen].scale; } -#if (!TARGET_IPHONE_SIMULATOR) // Collect cellular carrier data if CoreTelephony is linked Class CTTelephonyNetworkInfo = NSClassFromString(@"CTTelephonyNetworkInfo"); if (CTTelephonyNetworkInfo != NULL) { @@ -85,11 +84,13 @@ const NSTimeInterval MGLFlushInterval = 60; SEL subscriberCellularProviderSelector = NSSelectorFromString(@"subscriberCellularProvider"); id carrierVendor = ((id (*)(id, SEL))[telephonyNetworkInfo methodForSelector:subscriberCellularProviderSelector])(telephonyNetworkInfo, subscriberCellularProviderSelector); - SEL carrierNameSelector = NSSelectorFromString(@"carrierName"); - NSString *carrierName = ((id (*)(id, SEL))[carrierVendor methodForSelector:carrierNameSelector])(carrierVendor, carrierNameSelector); - _carrier = carrierName; + // Guard against simulator, iPod Touch, etc. + if (carrierVendor) { + SEL carrierNameSelector = NSSelectorFromString(@"carrierName"); + NSString *carrierName = ((id (*)(id, SEL))[carrierVendor methodForSelector:carrierNameSelector])(carrierVendor, carrierNameSelector); + _carrier = carrierName; + } } -#endif } return self; }