Observar o progresso do download de dados no Swift?

Preciso armazenar em cache os dados que recebo de um URL remoto em um URL local. Eu sou capaz de fazer isso com sucesso com:

let dataToCache = try Data(contentsOf: url) try dataToCache.write(to: cacheURL)

Mas eu queria saber se existe algum tipo de observador que eu possa usar para exibir uma visão de progresso à medida que os dados são gravados?