ios - 在 iOS App 中访问单例

标签 ios singleton reachability

这是一个关于单例的非常简单的问题,我希望有人能尽快为我解答。

我正在按照本教程创建一个单例来监视我的应用程序中的网络状态。

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/

相关文章:

ios - iOS推送通知的Certificates.p12文件中密码的作用是什么

objective-c - 从数组中获取值并计算

ios - 从 iOS 应用程序中的证书文件获取公钥信息

iphone - 格式化UITableViewCell(或任何文本)

objective-c - cocoa 中的单例,他们是邪恶的吗?

swift - 如果互联网连接丢失,如何停止函数执行

xcode - 如何重复可达性测试直至其正常工作

java - 如果单例很糟糕,那么如何存储框架的全局状态

C++ 为什么我的单例不维护成员值

iphone - 可达性帮助 - WiFi 检测