Во-первых: определение константы let со значением 0 всегда будет оставаться 0. Вы не можете динамически изменить это, чтобы отразить состояние вашей загрузки.
Как указал инженер из Realm в this post "Realm не может узнать общий объем данных." Оценка прогресса должна быть выполнена в вашем коде.
Вы можете попробовать что-то вроде этого:
func estimateProgress() {
let dataString = "Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda."
let data = dataString.data(using: .utf8)
let count = Float((data?.count)!)
let percentage: Float = count / 100
var progress: Float = 0
if progress < count {
progress += percentage
} else {
progress = count
}
progressView.setProgress(progress, animated: true)
print(progress)
}
Обратите внимание, что это решение предназначено для обновления пользовательского интерфейса и информирования пользователя о том, что выполняется сохранение в Realm.Поскольку он использует количество байтов в данных, чем больше данные, тем больше времени потребуется для заполнения индикатора выполнения.Так что это хорошо для пользовательского интерфейса, но это не фактическое состояние прогресса.
И если вы чувствуете, что индикатор выполнения заполняется медленно / быстро, вы всегда можете настроить процент.