2012-04-29 93 views
0

我有下面的代碼,由於某種原因我的塊沒有被解僱。Block not fired

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); 
} 

回答

1

嗯,首先,你必須return 0;權在main()的開始,所以它會立即退出。

即使在那之後,從它的接口,我收集的信息是比HttpRequestHelper是異步的。它將開始處理請求,但不會立即調用回調。相反,它只會在處理請求後調用回調函數。問題是,你不給它一個處理請求的機會。只要您發起請求,就允許main退出,這會終止程序。

您可能必須運行運行循環,直到調用回調。

+0

啊,甚至沒有注意到開始時的回報。謝謝! – azamsharp 2012-04-29 02:35:04