这是一个关于单例的非常简单的问题,我希望有人能尽快为我解答。
我正在按照本教程创建一个单例来监视我的应用程序中的网络状态。
http://code.tutsplus.com/tutorials/ios-sdk-detecting-network-changes-with-reachability--mobile-18299
在我的 AppDelegate.m 中,我按如下方式实例化管理器:
[ReachabilityManager sharedManager];
如果我现在想检查此sharedManager,如何从应用程序中的viewControllers 访问它?
这是这个类的样子:
#import "ReachabilityManager.h"
#import "Reachability.h"
@implementation ReachabilityManager
#pragma mark -
#pragma mark Default Manager
+ (ReachabilityManager *)sharedManager {
static ReachabilityManager *_sharedManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_sharedManager = [[self alloc] init];
});
return _sharedManager;
}
#pragma mark -
#pragma mark Memory Management
- (void)dealloc {
// Stop Notifier
if (_reachability) {
[_reachability stopNotifier];
}
}
#pragma mark -
#pragma mark Class Methods
+ (BOOL)isReachable {
return [[[ReachabilityManager sharedManager] reachability] isReachable];
}
+ (BOOL)isUnreachable {
return ![[[ReachabilityManager sharedManager] reachability] isReachable];
}
+ (BOOL)isReachableViaWWAN {
return [[[ReachabilityManager sharedManager] reachability] isReachableViaWWAN];
}
+ (BOOL)isReachableViaWiFi {
return [[[ReachabilityManager sharedManager] reachability] isReachableViaWiFi];
}
#pragma mark -
#pragma mark Private Initialization
- (id)init {
self = [super init];
if (self) {
// Initialize Reachability
self.reachability = [Reachability reachabilityWithHostname:@"www.google.com"];
// Start Monitoring
[self.reachability startNotifier];
}
return self;
}
@end
最佳答案
真的很容易:
#import "ReachabilityManager.h"
// Maybe in viewDidLoad
ReachabilityManager *sharedManager = [ReachabilityManager sharedManager];
// do stuff with your sharedManager
关于ios - 在 iOS App 中访问单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25713787/