Xcode/RestKit에 탭 기반 응용 프로그램을 작성했으며 RKReachabilityObserver를 사용하여 장치의 인터넷 연결을 확인하려고합니다.RestKit에서 RKReachabilityObserver를 구현하는 가장 좋은 방법
내 응용 프로그램 전체에서 단일 도달 가능성 변수를 갖고 싶습니다 (가능하면 가능).하지만 현재 구현은 아래 코드와 같으며 내 4 개의 탭에 복제 할 때 제대로 작동하지 않습니다.
아무에게도이 작업을 수행 할 수있는 더 좋은 방법이 있다면 정말 감사드립니다.
View.h
@property (nonatomic, retain) RKReachabilityObserver *observer;
View.m 다음
@interface AppViewController()
{
RKReachabilityObserver *_observer;
}
@property (nonatomic) BOOL networkIsAvailable;
@synthesize observer = _observer;
-(id)initWithCoder:(NSCoder *)aDecoder {
if ((self = [super initWithCoder:aDecoder])) {
self.observer = [[RKReachabilityObserver alloc] initWithHost:@"mydomain"];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(reachabilityChanged:)
name:RKReachabilityDidChangeNotification
object:_observer];
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// determine network availability
if (! [_observer isReachabilityDetermined]) {
_networkIsAvailable = YES;
}
else
{
_networkIsAvailable = NO;
}
_text.returnKeyType = UIReturnKeyDone;
_text.delegate = self;
}
- (void)reachabilityChanged:(NSNotification *)notification {
RKReachabilityObserver* observer = (RKReachabilityObserver *) [notification object];
if ([observer isNetworkReachable]) {
if ([observer isConnectionRequired]) {
_networkIsAvailable = YES;
NSLog(@"Reachable");
return;
}
}
else
{
_networkIsAvailable = NO;
NSLog(@"Not reachable");
}
}
어디서나 내보기에, 나는 단순히 할 ....
if (_networkIsAvailable == YES)
{...
내가 가진 여러보기에서이를 구현했습니다. 문제를 일으킨다.
다중보기 응용 프로그램에 대해 제안 된 접근 방식은 무엇입니까?
나는 싱글 톤을 대신 사용했으며 완벽하게 작동합니다. 감사. – Nick
안녕하세요. 선택한 호스트를 sharedClient 싱글 톤으로 만지는 방법이 있습니까? 또한, 최초로드 시간은 약 2 초입니다. 이게 정상인가? – Nick
도달 가능성 API와 관련하여 iOS5에 몇 가지 문제가있었습니다. 가능한 한 baseURL을 IP 주소로 정의하면 RestKit에서 IP를 사용하여 상태를 확인합니다. 문제는 도달 상태를 결정할 때 iOS가 DNS 요청을 처리하는 방식과 관련이 있습니다. 예, 다소 지연 될 수 있습니다. 디바이스 또는 시뮬레이터에서 테스트 중입니까? 장치가 있다면, iOS에는 무엇이 있습니까 (또한 Edge/3G/WiFi 연결성) – mja