我有以下代码,由于某种原因我的块没有被触发。
int main (int argc, const char * argv[])
{
@autoreleasepool {
return 0;
HttpRequestHelper *requestHelper = [[HttpRequestHelper alloc] init];
[requestHelper processRequest:@"www.yahoo.com" callback:^(NSString * response) {
NSLog(@"%@",response);
}];
}
}
@implementation HttpRequestHelper
-(void) processRequest:(NSString *)url callback:(void (^)(NSString *))block
{
block(url);
}
答案 0 :(得分:1)
嗯,首先,return 0;
开头main()
,所以它会立即退出。
即使在那之后,我从它的界面收集的还是HttpRequestHelper
是异步的。它将开始处理请求,但不会立即调用回调。相反,它只会在处理请求后调用回调。问题是,您没有给它机会来处理请求。一旦您发起了请求,就允许main
退出,这将终止该程序。
您可能必须运行run循环,直到调用回调。