0

アプリケーション内にすべてのネットワークを含めるために、データ コントローラー シングルトンを作成しました。それは機能しますが、シングルトン内でメソッドを呼び出すたびに、実行される前にわずかな一時停止があります。どうしてこれなの?

ビューコントローラー:

dataController = [FCDataController sharedInstance];
[dataController refreshData:self];

シングルトン:

+ (id)sharedInstance {

    static FCDataController *dataController = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        dataController = [[self alloc] init];
    });
    return dataController;
}


- (void)refreshData:(id)object {

    // Set the delegate
    [self setDelegate:object];

    if ([delegate respondsToSelector:@selector(refreshDataDidStart)]) {
        [delegate refreshDataDidStart];
    }

    NSURLRequest *theRequest = [NSURLRequest requestWithURL:[FCDataController parserURL] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:20];
    [NSURLConnection sendAsynchronousRequest:theRequest queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
        if (error == nil) {

            NSLog(@"Reachable");

            NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:[FCDataController parserURL]];
            [parser setDelegate:self];
            [parser parse];

            NSLog(@"Refresh Finished");
        }
        else {

            NSLog(@"Not Reachable");
            NSLog(@"%@",error.localizedDescription);


            NSLog(@"Refresh Finished");
        }
    }];
}
4

0 に答える 0