2014-06-09 1 views
3

следующий код:subscriberCellularProviderDidUpdateNotifier никогда не называют

CTTelephonyNetworkInfo *info = [[CTTelephonyNetworkInfo alloc] init]; 
    info.subscriberCellularProviderDidUpdateNotifier = ^(CTCarrier *carrier) { 
     dispatch_async(dispatch_get_main_queue(), ^{ 
      NSLog(@"User did change SIM"); 
     }); 
    }; 

Внутри:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
  • Или независимо от того, где я поставил код просто чтобы проверить его.

Независимо от того, сколько SIM-карт я заменяю на iPad Air Mini Wifi + 3G с iSO 7.1.1, которое никогда не вызывается.

Что я делаю неправильно?

+0

Сделать glo bal object of CTTelephonyNetworkInfo * info – Yogendra

ответ

5

Вам необходимо провести сильную ссылку на объект CTTelephonyNetworkInfo.

Swift:

в приложении класса делегата, объявить свойство для этого объекта называется telephonyNetworkInfo так:

let telephonyNetworkInfo = CTTelephonyNetworkInfo() 

Затем поместите это в didFinishLaunchingWithOptions метод своего приложения делегата:

telephonyNetworkInfo.subscriberCellularProviderDidUpdateNotifier = { carrier in 
    DispatchQueue.main.async { 
     print("User did change SIM") 
    } 
} 

Цель-C:

В @interface (или его расширение класса) своего приложения делегата, объявить свойство для этого объекта под названием telephonyNetworkInfo и вместо этого:

CTTelephonyNetworkInfo *info = [[CTTelephonyNetworkInfo alloc] init]; 

использовать это:

self.telephonyNetworkInfo = [[CTTelephonyNetworkInfo alloc] init]; 

И тогда, конечно, поместите это в свой метод делегата didFinishLaunchingWithOptions вашего приложения:

self.telephonyNetworkInfo.subscriberCellularProviderDidUpdateNotifier = ^(CTCarrier *carrier) { 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     NSLog(@"User did change SIM"); 
    }); 
}; 
+0

Перемещение объекта CTTelephonyNetworkInfo в AppDelegate решает мою проблему, спасибо большое! –

+0

Быстрая версия для этого? –

+0

@JayprakashDubey Обновлено – TylerTheCompiler