0

我編譯一個靜態庫(FAT二進制)靜態庫崩潰,包括以下內容:NSURLConnection的sendAsynchronousRequest在模擬器

NSURL *url = [NSURL URLWithString:urlString]; 
    NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url]; 
    NSOperationQueue *queue = [[NSOperationQueue alloc] init]; // also tried [NSOperationQueue mainQueue] 
    [NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { 
     // CRASH BEFORE BLOCK EXECUTES 
     NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response; 
     ... 

如果與設備和模擬器上的應用程序編譯本身的代碼運行正常但在模擬器上用作另一個應用程序中的靜態庫時會崩潰。靜態庫在iOS設備上正常工作。崩潰是EXC_BAD_ACCESS,通過做一些日誌記錄,我將其縮小到sendAsynchronousRequest。該塊不會被調用。

任何想法可能是錯誤的?

回答

0

我能夠通過使用NSURLConnectionDelegate方法來修復它。我仍然很想知道它爲什麼會崩潰,如果您有任何想法,請發表評論。

0

您是否有理由創建自己的隊列?嘗試使用[NSOperationQueue mainQueue]作爲隊列

+0

我試過之前,它沒有工作要麼 – KDaker 2015-01-21 02:53:05

+0

對不起,然後。其餘的看起來是正確的,必須是別處的問題。也許嘗試使用NSURLSession,如果可以,看看問題是否消失? – Stephen 2015-01-21 02:54:55

+0

不確定是否需要NSURLSession – KDaker 2015-01-21 22:26:43