2012-02-03 3 views
9

Так что у меня возникла довольно сложная проблема. Кажется, что ASIHTTPRequest просто не хочет работать в сборке.
Все отлично работает в отладке. Однако, как только я создаю для производства, следующий код просто не хочет запускаться. Он не ударил ни по блоку, ни к завершению. Я также пробовал использовать селекторы с делегатом, но те не вызываются.Ошибка ASIHTTPRequest в производственных сборках

__block __weak ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:URL]; 
[self performSelectorOnMainThread:@selector(startSpinner) withObject:nil waitUntilDone:NO]; 

[request setCompletionBlock:^{ 
    [self performSelectorOnMainThread:@selector(stopSpinner) withObject:nil waitUntilDone:NO]; 
}]; 

[request setFailedBlock:^{ 
    [self performSelectorOnMainThread:@selector(stopSpinner) withObject:nil waitUntilDone:NO]; 
}]; 

[request startAsynchronous]; 

Я знаю, что это своего рода плохое описание моей проблемы, но кто-нибудь имеет ни малейшего понятия о том, что могло вызвать эту проблему?

ответ

22

Похоже, что в ASIHttpRequest есть ошибка, вызывающая этот сбой при работе с оптимизацией режима деблокирования.

То, что сработало для меня выключая оптимизации для следующих 2 файла: ASIFormDataRequest.m ASIHTTPRequest.m

ли это, выбрав целевой проект, выберите файл в разделе «Компиляция источников» Вкладка «Сборка фаз»; и добавьте -O0 (capitol O zero).

Вы можете прочитать больше об этом here

+0

Спасибо так много. – endy

+0

Действительно, спасибо, спасибо! – cheeesus

+1

Как добавить несколько флагов? Мне нужно добавить этот флаг -fno-objc-arc, чтобы включить работу в ARC также вы сказали, что я должен добавить этот флаг -O0, чтобы включить работу в режиме выпуска, как я могу добавить 2 флага? – Abo3atef

Смежные вопросы