---
title: "connection(_:didWriteData:totalBytesWritten:expectedTotalBytes:)"
framework: foundation
role: symbol
role_heading: Instance Method
path: "foundation/nsurlconnectiondownloaddelegate/connection(_:didwritedata:totalbyteswritten:expectedtotalbytes:)"
---

# connection(_:didWriteData:totalBytesWritten:expectedTotalBytes:)

Sent to the delegate to deliver progress information for a download of a URL asset to a destination file.

## Declaration

```swift
optional func connection(_ connection: NSURLConnection, didWriteData bytesWritten: Int64, totalBytesWritten: Int64, expectedTotalBytes: Int64)
```

## Parameters

- `connection`: The URL connection object downloading the asset.
- `bytesWritten`: The number of bytes written since the last call of this method.
- `totalBytesWritten`: The total number of bytes of the downloading asset that have been written to the file.
- `expectedTotalBytes`: The total number of bytes of the URL asset once it is completely downloaded and written to a file. This parameter can be zero if the total number of bytes is not known.

## Discussion

Discussion This method is invoked repeatedly during the download of a URL asset to the destination file. The delegate typically uses the values of the three “bytes” parameters to update a progress indicator in the application’s user interface.

## See Also

### Managing Downloads of URL Assets

- [connectionDidResumeDownloading(_:totalBytesWritten:expectedTotalBytes:)](foundation/nsurlconnectiondownloaddelegate/connectiondidresumedownloading(_:totalbyteswritten:expectedtotalbytes:).md)
- [connectionDidFinishDownloading(_:destinationURL:)](foundation/nsurlconnectiondownloaddelegate/connectiondidfinishdownloading(_:destinationurl:).md)
