내 앱의 응답 속도를 높이고 디버거 콘솔을 체크 아웃하는 동안 앱에서 XML 데이터를 두 번 검색하는 것으로 나타났습니다. . . 즉, 페이지가 나타나면 일부 xml 데이터를 가져와 파싱하고 객체 배열을 반환하는 백그라운드 큐를 전달합니다. 나는 nslog를 사용하여 콘솔에 데이터 문자열을 입력하고 몇 가지 이유로 두 번 인쇄합니다. Heres는 내 관련 코드 : VC에서iOS 백그라운드 대기열에서 데이터를 두 번 검색하고 있습니까?
:
SDJConnection에서 getVideoData 방법은 다음과 같습니다-(void)startBackgroundQueue{
dispatch_async(backgroundThread, ^(void){
SDJConnection *connection = [[SDJConnection alloc]init];
self.dataArray = [connection getVideoData];
[[NSNotificationCenter defaultCenter]postNotificationName:@"tube_data_loaded" object:nil];
});
}
:
-(NSMutableArray *)getVideoData {
NSURL *dataURL = [[NSURL alloc]initWithString:@"https://gdata.youtube.com/feeds/api/users/dancingastronaut/uploads?start-index=1&max-results=10"];
NSData *data = [[NSData alloc]initWithContentsOfURL:dataURL];
NSString *dataString = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"data string: %@",dataString);
YouTubeParser *parser = [[YouTubeParser alloc]initWithData:data];
[parser setDelegate:parser];
[parser parse];
return [parser videosArray];
}
다음 VC가이 코드를 수행
-(void)backgroundQueueDone{
dispatch_async(dispatch_get_main_queue(),^(void){
[activityIndicator stopAnimating];
if ([_dataArray count] >1) {
self.tableView.separatorColor = [UIColor darkGrayColor];
[self.tableView reloadData];}
});
}
을
Im이 문제인지 아닌지 확실하지 않지만 어떻게 든 실행하는 것으로 자원을 낭비하고 있다고 걱정됩니다. 이 두 번. 무슨 일이 벌어 질지에 대한 아이디어가 있습니까?
감사합니다.