Есть ли способ преобразовать значение [NSData bytes] в float, чтобы я мог добавить его в индикатор выполнения?NSData Bytes to Float - iPhone SDK
Спасибо,
Kevin
Есть ли способ преобразовать значение [NSData bytes] в float, чтобы я мог добавить его в индикатор выполнения?NSData Bytes to Float - iPhone SDK
Спасибо,
Kevin
В двух словах: [data length]
Вот фрагмент того, как скачать бар я использую работу.
// Can get called numerous times during download process
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
// Accumulate incoming data into mutable data object
[fileData appendData:data];
byteCount += [data length];
float progress = byteCount/(mapToDownload.fileSize);
[self performSelectorOnMainThread:@selector(updateProgress:) withObject:[NSNumber numberWithFloat:progress] waitUntilDone:NO];
}
Дайте мне знать, если вам нужна дополнительная информация.
[Добавлено 26 октября по решению другого вопроса:]
Я не работал с NSStream. Мой пример - из асинхронного примера NSURLConnection. Поэтому проигнорируем мой предыдущий пример кода.
Вы упомянули, что у вас есть [NSData bytes]
. [NSData length]
должен вернуть вам, сколько у вас данных. Предполагая, что вы знаете размер, который необходимо загрузить, затем:
float progressPercentage = [yourNSData length]/knownFileSize;
должен предоставить вам процент, необходимый для обновления индикатора выполнения. Затем вы можете установить индикатор выполнения:
[yourProgressBar setProgress:progressPercentage];
Каковы переменные fileData и byteCount? Я использую NSStreamOutput, когда получаю данные, поэтому я не использую appendData. Будет ли безопасно использовать его, когда у меня есть NSStreamOutput одновременно? – lab12
Спасибо за новый ответ! – lab12
Нет проблем. Рад, что это было полезно. – dredful