У меня есть функция в Swift, чтобы узнать, изменилась ли доступность/сетевое подключение ... но когда я изменяю wifi на 3g, это не обнаруживает никаких изменений, и я не знаю, почему это не вызвано .. У меня это в viewDidLoad :Как правильно использовать NSNotificationCenter в Swift?
var kReachabilityChangedNotification:NSString = "kNetworkReachabilityChangedNotification"
NSNotificationCenter.defaultCenter().addObserver(self, selector: "reachabilityChanged:", name: kReachabilityChangedNotification, object: nil)
func reachabilityChanged(sender : AnyObject) {
instanceOfCustomObject.newtworkType()
}
И в пользовательских object.m:
- (void)newtworkType {
NSArray *subviews = [[[[UIApplication sharedApplication] valueForKey:@"statusBar"] valueForKey:@"foregroundView"]subviews];
NSNumber *dataNetworkItemView = nil;
for (id subview in subviews) {
if([subview isKindOfClass:[NSClassFromString(@"UIStatusBarDataNetworkItemView") class]]) {
dataNetworkItemView = subview;
break;
}
}
switch ([[dataNetworkItemView valueForKey:@"dataNetworkType"]integerValue]) {
case 0:
networkConnection = @"No wifi or cellular";
NSLog(@"No wifi or cellular");
break;
case 1:
networkConnection = @"2G";
NSLog(@"2G");
break;
case 2:
networkConnection = @"3G";
NSLog(@"3G");
break;
case 3:
networkConnection = @"4G";
NSLog(@"4G");
break;
case 4:
networkConnection = @"LTE";
NSLog(@"LTE");
break;
case 5:
networkConnection = @"Wifi";
NSLog(@"Wifi");
break;
default:
break;
}}
Как я могу сделать это правильно?
Это Objective-C not Swift! – ColinE
Быстро с интегрированным объективом. Я использую только функцию Objective C: - (void) newtworkType {} – user3745888