2012-02-03 25 views
9

Vì vậy, tôi đã gặp phải một vấn đề khá. Dường như ASIHTTPRequest chỉ không muốn làm việc trong một quá trình xây dựng sản xuất.
Mọi thứ hoạt động tốt trong gỡ lỗi. Tuy nhiên, một khi tôi xây dựng cho sản xuất các mã sau đây chỉ không muốn chạy. Nó không nhấn một trong hai khối hoàn thành cũng không thành công. Tôi cũng đã thử sử dụng bộ chọn, với một đại biểu nhưng những người không được gọi là một trong hai.ASIHTTPRequest không thành công trong sản xuất xây dựng

__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]; 

Tôi biết đó là một mô tả xấu về vấn đề của tôi nhưng có ai có manh mối nhỏ nhất về những gì có thể gây ra sự cố này không?

Trả lời

22

Dường như có lỗi trong ASIHttpRequest, gây ra sự cố này khi chạy với tối ưu hóa chế độ phát hành.

gì làm việc đối với tôi là tắt tối ưu hóa cho 2 file sau: ASIFormDataRequest.m ASIHTTPRequest.m

Làm điều này bằng cách chọn dự án mục tiêu, chọn tập tin trong "Biên soạn nguồn" của Tab "Xây dựng giai đoạn"; và thêm -O0 (thủ đô O zero).

Bạn có thể đọc thêm về nó here

+0

Cảm ơn bạn rất nhiều. – endy

+0

Thật vậy, cảm ơn bạn cảm ơn bạn! – cheeesus

+1

Làm cách nào để thêm nhiều cờ? Tôi cần phải thêm cờ này -fno-objc-arc để cho phép làm việc trong ARC cũng bạn đã nói tôi đã thêm cờ này -O0 để cho phép làm việc ở chế độ phát hành, làm cách nào để thêm 2 cờ? – Abo3atef