Tôi đang sử dụng một phiên bản của NSURLConnection trên iPhone để yêu cầu dữ liệu từ một máy chủ, được quản lý bởi một đại biểu như bình thường. Các yêu cầu là khá thường xuyên (có thể một lần mỗi 2 phút nói) và có một URL phổ biến và cố định. Thay vì nhìn thấy trường hợp tốt của NSURLConnection được phát hành sau mỗi lần tải xuống và sau đó một bản mới được tạo ra:Sử dụng lại một phiên bản của NSURLConnection
Có bất kỳ giá trị nào trong việc duy trì kết nối đầu tiên và sử dụng lại nó không? (Tôi hy vọng như vậy, một xác thực tốt sẽ đáng giá một nghìn.)
Nếu vậy, làm cách nào để tôi sử dụng lại nó? Phương pháp nổi bật trong tài liệu là
-start
nhưng điều này dường như làm hỏng ứng dụng khi được gọi trên một phiên bản đã được sử dụng (và không phải là nil) của NSURLConnection. [Các tài liệu làm nói-start
"làm cho người nhận để bắt đầu nạp dữ liệu, nếu nó không có đã"]
Trong trường hợp đó là sự giúp đỡ liên quan đến các câu hỏi trên với, Tôi (đã) đề xuất:
if (connection_ == nil)
{
connection_ = [NSURLConnection connectionWithRequest:request
delegate:self];
}
else
{
[connection_ start];
}
Câu hỏi thú vị ... :) – Jasarien
Đây là một bản sao nhỏ, xem http://stackoverflow.com/questions/886810/nsurlconnection-is-run-many-times. Vẫn không có câu trả lời tốt mặc dù. Có vẻ như bạn cần phải pha trộn lớp của riêng mình cho nhiệm vụ này. – SK9
Có vẻ như một trong những câu trả lời cho câu hỏi đó là gợi ý luồng HTTP thay vì kết nối sử dụng một lần. Giữ một dòng mở và chỉ sử dụng nó mỗi 2 phút sẽ không là một ý tưởng tuyệt vời. Tôi không thực sự thấy một vấn đề với việc phát hành và tái tạo đối tượng kết nối. Đây có phải là một tối ưu hóa trước không? – Jasarien