2009-08-10 11 views
17

Próbuję pobrać duży plik na iPhone'a i zapisać go na dysku po jego pobraniu.Dołącz NSData do pliku w Objective C

Idealnie, w:

-(void)connection:(NSURLConnection*)connection didReceiveData:(NSData*)data { 

} 

Chcę dołączyć 'dane' do pliku na dysku.

Sprawdziłem dokumentację NSData. Istnieją funkcje zapisu do pliku, ale nie widzę niczego, co można by dołączyć do istniejącego pliku.

Czy ktoś wie, w jaki sposób mogę dołączyć te dane? Każda pomoc doceniona! Nick.

Odpowiedz

42

Można użyć kombinacji metod -writeData: i -seekToEndOfFile z klasy NSFileHandle do napisania NSData na końcu pliku.

+0

Geniusz. Przysięgam, że kilka razy obejrzałem dokumentację NSFileHandle, zanim napisałem ten post! Trzeba całkowicie przegapić te funkcje! N –

+0

Dlaczego nie używać NSMutableData? Ma appendData: method! – applefreak

+5

NSMutableData działa w pamięci RAM - pobranie pliku o dowolnym rozmiarze zajmie twoje zasoby. –

-1

Istnieje przykładowa aplikacja Apple, która pobiera pliki do pliku, za pomocą NSOutputStream do zapisu w pliku. Zajrzyj do pliku "GetController.h" przykładowej aplikacji o nazwie "SimpleURLConnections".

Oto bezpośredni URL - chociaż nie sądzę, że zadziała, jeśli nie zalogujesz się na developer.apple.com.

https://developer.apple.com/library/ios/#samplecode/SimpleURLConnections/Introduction/Intro.html#//apple_ref/doc/uid/DTS40009245

+0

Jest to w zasadzie odpowiedź typu "link only". – Puppy