Keine internet-Verbindung alert mit AFNetworking 2 und Erreichbarkeit

Ich versuche, herauszufinden, wie eine Meldung "Keine internet Verbindung" alert über AFNetworking 2 und Erreichbarkeit.

Habe ich die Erreichbarkeit und AFNetworking importiert in meinem Controller. Der Teil von meinem code, der mit beginnt AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:url]; ich Weg von der AFNetworking 2 Dokumentation, ich bin mir nicht sicher, ob das ist, wo es hingehört.

UPDATE

Meine app zeigt jetzt eine Warnung, wenn es keine internet-Verbindung, aber es dauert viel zu lange für die Warnmeldung zu zeigen, habe ich auch Zweifel, dies ist der beste Weg, ich kann die Struktur meines Codes. (Auch wenn ich auf die main view-Controller und ich Sie auf eine Zelle, wenn es keine Verbindung, die app stürzt ab, ich weiß nicht, ob es einen Weg gibt, dies zu beheben).

- (void)viewDidLoad

{
    [super viewDidLoad];

    Reachability * reach = [Reachability reachabilityWithHostname:@"www.google.com"];

    reach.reachableBlock = ^(Reachability * reachability)
    {
        NSLog(@"Reachable");
    };

    reach.unreachableBlock = ^(Reachability * reachability)
    {
        UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"No internet connection"
                                                         message:@"No internet connection"
                                                        delegate:self
                                               cancelButtonTitle:@"Ok"
                                               otherButtonTitles:nil];
        [alert show];
        NSLog(@"Not Reachable");
    };

    [reach startNotifier];

    self.upcomingReleases = [[NSMutableArray alloc] init];

    [self makeReleasesRequests];

    self.navigationController.navigationBar.tintColor = [UIColor whiteColor]; //Make nav items white

    [self.collectionView registerClass:[ReleaseCell class] forCellWithReuseIdentifier:@"ReleaseCell"];
}

-(void)makeReleasesRequests
{
    NSURL *url = [NSURL URLWithString:@"http://www.soleresource.com/upcoming.json"];

    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];

    operation.responseSerializer = [AFJSONResponseSerializer serializer];

    [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

        NSLog(@"@");

        self.upcomingReleases = [responseObject objectForKey:@"upcoming_releases"];

        [self.collectionView reloadData];

    } failure:nil];

    [operation start];

    AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:url];

    NSOperationQueue *operationQueue = manager.operationQueue;
    [manager.reachabilityManager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
        switch (status) {
            case AFNetworkReachabilityStatusReachableViaWWAN:
            case AFNetworkReachabilityStatusReachableViaWiFi:
                [operationQueue setSuspended:NO];
                break;
            case AFNetworkReachabilityStatusNotReachable:
            default:
                [operationQueue setSuspended:YES];
                break;
        }
    }];

}

Dank.

InformationsquelleAutor ChrisBedoya | 2013-11-14
Schreibe einen Kommentar