我有一个将在应用程序委托中创建的单点类。
当我运行 XCTTests 时,它会第二次创建。
+ (instancetype)urlSchemeManager
{
static dispatch_once_t onceToken;
static UrlSchemeManager* _sharedInstance;
dispatch_once(&onceToken, ^{
_sharedInstance = [UrlSchemeManager new];
});
return _sharedInstance;
}
这导致了两种不同的情况。如果我只是将它用于单元测试,这没问题。但是在集成测试中,当我为 urlSchmemeManager 注册一个观察者时,我得到一个 EXC_BAD_ACCESS,因为它已经被 rootViewController(在 UI 中)观察到了。
在 RootViewController 中:
UrlSchemeManager * schemeManager = [GlobalSpace globalSpace].urlSchemeManager;
[schemeManager addObserver:self forKeyPath:OBSERVER_KEY_URL_SCHEME_MANAGER_CONTENT_MORE options:NSKeyValueObservingOptionNew context:nil];
有谁知道我该如何解决这个问题?