<!--
{
  "availability" : [
    "iOS: 3.0.0 - 18.0.0",
    "iPadOS: 3.0.0 - 18.0.0",
    "macCatalyst: 13.1.0 - 18.0.0",
    "macOS: 10.7.0 - 15.0.0",
    "tvOS: -",
    "visionOS: 1.0.0 - 2.0.0",
    "watchOS: 6.2.0 - 11.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "StoreKit",
  "identifier" : "/documentation/StoreKit/SKRequestDelegate/requestDidFinish(_:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "StoreKit"
    ],
    "preciseIdentifier" : "c:objc(pl)SKRequestDelegate(im)requestDidFinish:"
  },
  "title" : "requestDidFinish(_:)"
}
-->

# requestDidFinish(_:)

Tells the delegate that the request has completed.

```
optional func requestDidFinish(_ request: SKRequest)
```

## Parameters

`request`

The request that completed.

## Discussion

This method is called after all processing of the request has been completed. Typically, subclasses of [`SKRequest`](/documentation/StoreKit/SKRequest) require the delegate to implement additional methods to receive the response. When this method is called, your delegate receives no further communication from the request and can release it.

## See Also

  [In-App Purchase Programming Guide](https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Introduction.html#//apple_ref/doc/uid/TP40008267)



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)