0
싱글 톤에 대한 질문은 누군가가 나를 빨리 해결할 수 있기를 바랄뿐입니다.iOS 앱에서 싱글 톤에 액세스하기
내 응용 프로그램에서 네트워크 상태를 모니터링하기위한 싱글 톤을 만드는 방법에 대한 설명입니다. 다음과 같이
http://code.tutsplus.com/tutorials/ios-sdk-detecting-network-changes-with-reachability--mobile-18299
내 AppDelegate.m에서 나는 매니저의 인스턴스 :
[ReachabilityManager sharedManager];
내가 지금은 내 응용 프로그램에 viewControllers에서 액세스 할 방법이 sharedManager, 확인하려면 ?
#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
감사
이 클래스처럼 보이는 것입니다! 튜토리얼에서 AppDelegate.m에 sharedManager가 생성 된 것을 확인했습니다. http://code.tutsplus.com/tutorials/ios-sdk-detecting-network-changes-with-reachability--mobile-18299 다른보기에서 그것을 재현하지 않아야합니까? – scientiffic
@scientiffic 컴파일되고 실행되는 한 원하는 모든 작업을 수행 할 수 있습니다. 싱글 톤의 요점은 하나의 장소에서만 액세스 할 수있는 것은 아니지만 싱글 톤이 하나 뿐이며 클래스의 인스턴스가 하나만 존재한다는 것입니다. 싱글 톤의 아이디어에 대한 자세한 내용은 [wikipedia] (http://en.wikipedia.org/wiki/Singleton_pattern)를 확인하십시오. – michaelsnowden
나는 이해한다고 생각합니다. 그러나 예를 들어 sharedManager.isReachable을 사용하려고하면 "ReachabilityManager 유형의 객체에서 isReachable 속성을 찾을 수 없습니다."라는 오류가 발생합니다.이 메서드는 클래스에 정의되어 있으므로 이해가되지 않습니다. – scientiffic