Не удается получить делегат callback ASIHTTPRequest для запуска

Почему делегат callback не запускается:

#import "dbConnector.h" #import "ASIFormDataRequest.h" #import "JSONKit.h"; @implementation dbConnector //method to +(void)getQuestions:(NSString*)sectionId{ NSString* url = @"http://dev.speechlink.co.uk/David/tester.php"; NSURL *link = [NSURL URLWithString:url]; ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:link]; [request setPostValue:sectionId forKey:@"section"]; [request setDelegate:self]; [request setDidFinishSelector:@selector(requestFinished:)]; [request startAsynchronous]; } - (void)requestFinished:(ASIHTTPRequest *)request { //NSString *response = [request responseString]; NSLog(@"hello"); //never prints } @end #import "ASITesterViewController.h" #import "dbConnector.h"; @implementation ASITesterViewController @synthesize questions; -(void)viewDidLoad{ //code to initialise view [dbConnector getQuestions:@"2"]; [super viewDidLoad]; } - (void)didReceiveMemoryWarning { // Releases the view if it doesn't have a superview. [super didReceiveMemoryWarning]; // Release any cached data, images, etc that aren't in use. } - (void)viewDidUnload { // Release any retained subviews of the main view. // eg self.myOutlet = nil; } - (void)dealloc { [super dealloc]; } @end 

Минус соответствующих файлов заголовков и соответствующих файлов ASIHTTPRequest, это только два файла, которые у меня есть. Что я делаю неправильно?

Он не будет вызван b / c, вы создали метод класса, чтобы он не имел доступа к методу выбора.

+(void)getQuestions:(NSString*)sectionId

Использовать синхронный вызов:

 +(void)getQuestions:(NSString*)sectionId{ NSString* url = @"http://dev.speechlink.co.uk/David/tester.php"; NSURL *link = [NSURL URLWithString:url]; ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:link]; [request setPostValue:sectionId forKey:@"section"]; [request startSynchronous]; NSError *error = [request error]; if (!error) { //Do what you want with the response }else{ //Error } } 

EDIT 2 Передайте параметр делегата функции.

 +(void)getQuestions:(NSString*)sectionId respondToDelegate:(id)delegate{ NSString* url = @"http://dev.speechlink.co.uk/David/tester.php"; NSURL *link = [NSURL URLWithString:url]; ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:link]; [request setPostValue:sectionId forKey:@"section"]; [request setDelegate:delegate]; [request setDidFinishSelector:@selector(requestFinished:)]; [request startAsynchronous]; } 

Часть вашего кода, в котором я не уверен, заключается в том, чтобы поместить триггер запроса в метод класса другого класса. Вы знаете, что [dbConnector getQuestions:@"2"]; на самом деле обстреливает намеченный метод?