且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

无法获取 ASIHTTPRequest 回调委托来触发

更新时间:2023-11-21 20:48:10

它不会被调用 b/c 您创建了一个类方法,因此它无法访问选择器方法.

It will not get called b/c you created a class method so it does not have an access to the selector method.

+(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 将委托参数传递给函数.

EDIT 2 Pass a delegate parameter to the function.

+(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];    
}