He escrito una aplicación basada en pestañas en Xcode/RestKit y estoy intentando utilizar RKReachabilityObserver para determinar la conectividad a Internet en el dispositivo.La mejor manera de implementar RKReachabilityObserver en RestKit
Idealmente me gustaría tener una sola variable de accesibilidad en toda mi aplicación (si esto es posible) pero actualmente mi implementación es según el siguiente código y no funciona muy bien cuando se replica en mis 4 pestañas.
Si alguien tiene alguna sugerencia de una mejor manera de hacerlo, agradecería mucho sus comentarios.
View.hy
@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");
}
}
continuación, en cualquier lugar, en mi opinión, yo simplemente hago ....
if (_networkIsAvailable == YES)
{...
tengo implementado esto en múltiples vistas (lo que parece estar causando el problema
¿Cuál es el enfoque sugerido para una aplicación de vista múltiple?
En su lugar, utilicé el singleton y funciona perfectamente. Gracias. – Nick
Hola mja. ¿Hay alguna forma de tocar un host seleccionado con singleton sharedClient? Además, el tiempo de carga inicial es de alrededor de 2 segundos. ¿Esto es normal? – Nick
Hubo algunos problemas en iOS5 con respecto a la API de accesibilidad. Lo mejor es que defina su URL base como dirección IP (si es posible), luego RestKit usará la IP para determinar el estado: los problemas estaban relacionados con la forma en que iOS maneja las solicitudes de DNS al determinar el estado de accesibilidad. Sí, puede haber un poco de retraso. ¿Estás probando en el dispositivo o Simulador? Si el dispositivo, qué iOS tiene (y también conectividad - Edge/3G/WiFi) – mja