<!--
{
  "availability" : [
    "watchOS: 7.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "ClockKit",
  "identifier" : "/documentation/ClockKit/CLKComplicationDescriptor/userActivity",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "ClockKit"
    ],
    "preciseIdentifier" : "c:objc(cs)CLKComplicationDescriptor(py)userActivity"
  },
  "title" : "userActivity"
}
-->

# userActivity

A user activity object that represents the state of the app at a moment in time.

```
var userActivity: NSUserActivity? { get }
```

## Discussion

When the user taps on a complication specified by this configuration, the system launches the app and calls <doc://com.apple.documentation/documentation/WatchKit/WKExtensionDelegate/handle(_:)-5pyj1>, passing the user activity. Your extension delegate’s handle method should update the app so that it’s in the specified state.

Because the system can pass configurations as part of a shared watch face, only include data useable by any instance of the app. For example, avoid using identifiers that might change between users, like an index into the user’s favorites list. Instead, use items that remain constant across all copies of the app, like unique string identifiers.

---

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)