2015-02-26 2 views
0

Я пишу приложение для загрузки файлов IOS, которое открыто одновременно с несколькими NSUrlConnection (каждый для загрузки одного файла) и хочет реализовать соответствующий индикатор выполнения для каждого из них.IOS: несколько NSUrlConnection вместе с несколькими UIProgressBar

NSUrlConnection загрузки файла фрагмент:

NSURLConnection *urlConnection = [[NSURLConnection alloc] initWithRequest:request 
                    delegate:self 

[urlConnection start]; 

Метод делегата для обновления прогресса:

- (void)connection:(NSURLConnection *)connection didSendBodyData:(NSInteger)bytesWritten totalBytesWritten:(NSInteger)totalBytesWritten totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite { 
self.progressBar.progress += (float)bytesWritten/(float)totalBytesExpectedToWrite; 
NSLog(@"it's working: %lf",self.progressBar.progress); 
} 

Теперь в этом случае, если у меня есть отдельный индикатор для каждой загрузки файла, есть способ узнать, какая загрузка файла, то есть NSURLConnection этот делегат соответствует, так что я могу соответствующим образом обновить соответствующий индикатор выполнения. Есть ли какое-либо свойство, которое я могу установить в NSURLConnection, к которому я могу получить доступ в переменной соединения в методе делегата?

Спасибо.

ответ

0

Что я сделал, так это то, что я построил свой собственный класс (например, MyUploader), и я добавил объект NSURLConnection внутри него, а также ссылку на элемент управления выполнения, который должен быть обновлен этим объектом NSURLConnection.

@interface MyUploader 

@property (strong, nonatomic) NSURLConnection* connection; 
@Property (weak, nonatomic) UIProgressBar bar; 

- (void)startUploadingFile:(NSString*)filePath withBarToUpdate:(UIProgressBar*)progressBar; 

@end 

В контроллере представления вы можете передать объект бара и путь к файлу в startUploadingFile: withBarToUpdate: и он может сохранить объект бара и запускает соединение.

Также этот класс должен внедрить NSURLConnectionDelegate, чтобы обновить индикатор выполнения, как и в вашем коде

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

  • Нет связанных вопросов^_^