Я пытаюсь прочитать значение ключа com.apple.progress.fractionCompleted для файла, который активно загружается. Это вроде работает, но возвращаемое значение меняется не очень часто. Если я смотрю файл в Finder, круг прогресса загрузки Finder показывает почти непрерывное плавное движение.
Finder отлично отслеживает всю загрузку, и если загрузка файла завершена на 50%, круг выполнения Finder наполовину полон. Однако чтение значения ключа com.apple.progress.fractionCompleted возвращает какое-то другое значение, например 27% или 36% и т. Д. Кажется, что оно просто застряло и не обновляет значение ключа.
Однако, используя приведенный ниже код, я получаю возвращаемые значения, такие как 10, затем 34, затем 67, затем 92, затем загрузка завершена.
Я опрашиваю это значение, используя NSTimer, который срабатывает каждую секунду. Ожидается ли это - не видя приращения значения FractionCompleted в меньших количествах?
NSDictionary *fileAttr = [[NSFileManager defaultManager] attributesOfItemAtPath:[self.fileSizeTimer userInfo] error:nil];
NSDictionary *extendAttr = [fileAttr objectForKey:@"NSFileExtendedAttributes"];
NSString* downloadProgress = [[NSString alloc] initWithData:[extendAttr objectForKey:@"com.apple.progress.fractionCompleted"] encoding:NSASCIIStringEncoding];
float progressFloat = [downloadProgress floatValue] * 100;