Używam instancji NSURLConnection na iPhonie do żądania danych z serwera, zarządzanego przez delegata jak zwykle. Żądania są dość częste (może raz na 2 minuty) i mają wspólny i stały adres URL. Zamiast widząc dobre wystąpienie NSURLConnection zwolniony po każdym pobrania, a następnie nowy tworzonego:Ponowne użycie instancji NSURLConnection
istnieje jakikolwiek warto w zachowaniu pierwszego połączenia i ponowne wykorzystanie go? (Mam nadzieję, że jedno dobre uwierzytelnienie powinno być warte tysiąc.)
Jeśli tak, jak mogę go użyć ponownie? Wyjątkowa metoda w dokumentach to
-start
, ale zdaje się to powodować awarię aplikacji po wywołaniu już używanej (i niezerowej) instancji NSURLConnection. [Docs mów-start
„Powoduje słuchawkę, aby rozpocząć ładowanie danych, gdy nie ma już”]
W przypadku jest to pomoc w odniesieniu do powyższych pytań, proponuję (było!):
if (connection_ == nil)
{
connection_ = [NSURLConnection connectionWithRequest:request
delegate:self];
}
else
{
[connection_ start];
}
Interesujące pytanie ... :) – Jasarien
To jest mały duplikat, zobacz http://stackoverflow.com/questions/886810/nsurlconnection-is-run-many-times. Nadal nie ma dobrej odpowiedzi. Wygląda na to, że musisz wymyślić własną klasę do tego zadania. – SK9
Wydaje się, że jedną z odpowiedzi na to pytanie jest sugerowanie strumienia HTTP zamiast połączenia jednorazowego. Pozostawienie otwartego strumienia i używanie go co 2 minuty nie byłoby dobrym pomysłem. Naprawdę nie widzę problemu z udostępnianiem i odtwarzaniem obiektu połączenia. Czy to nie jest wstępna optymalizacja? – Jasarien