AFNetworking하고있는 NSURLConnection
편집 : 나는 그것을 호출하지있을 때 AFNetworking
이며, [NSThread main]
에서 실행 NSURLConnection
이유 스크린 샷에서 강조 표시된 행은, 내가 문제가있는 것입니다.
내 프로젝트에 AFNetworking을 사용하고 있지만 Instrument에서 Time Profiler를 실행할 때 NSURLConnection에 대한 주 스레드에서 많은 활동을보고 있는데, 나는 이것이 내가 원하는 것이 아님을 느낍니다.
내 방법은
- (void)parseArticles {
NSMutableArray *itemsToParse = [[FMDBDataAccess sharedDatabase] getItemsToParse];
NSMutableArray *operations = [[NSMutableArray alloc] init];
for (Post *p in itemsToParse) {
NSMutableString *strURL = [NSMutableString new];
[strURL appendString:@"http://xxxxxxxxxxxxxxxxxxxxxx.php?url="];
[strURL appendString:[p href]];
NSURL *url = [NSURL URLWithString:strURL];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[[ParserClient sharedInstance] registerHTTPOperationClass:[AFHTTPRequestOperation class]];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
dispatch_async(loginParseQueue, ^{
Parser *parse = [[Parser alloc] init];
[parse parseLink:responseObject rowID:[p rowID]];
});
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"%@",error);
}];
[operations addObject:operation];
}
NSOperationQueue *operationQueue = [[NSOperationQueue alloc] init];
[operationQueue setMaxConcurrentOperationCount:3];
[operationQueue addOperations:operations waitUntilFinished:NO];
}
왜 메인 스레드를 사용하여 AFNetworking 것입니까? 어떻게 수정해야합니까?
그것은 내가 [NSURLConnection (loader)] 등 [NSThread main]이라고 표시된 화살표 아래에 관심이있는 인스트루먼트 스크린 샷의 강조된 부분입니다. 메인 스레드가 아닌가요? – Nick
고마워, 내가 혼란스러워하고 기본 스레드라고 가정했다고 생각해. – Nick