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