# `GSLayer setUserData:forKey:`

*Instance Method*

Sets or removes a persistent user-data value.

## Declaration

```swift
func setUserData(_ value: Any?, forKey key: String)
```

```objc
- (void) setUserData:(id) value forKey:(NSString *) key;
```

```python
setUserData_forKey_(value: object, key: str)
```

## Parameters

- `value` — A value that supports property-list encoding, or `nil` to remove the user-data value.

## Discussion

Changing user data registers undo. Passing `nil` as the value removes the user-data value.

## See Also

### User Data

- [`GSLayer.userData`](/Core/GlyphsCore/GSLayer/userData) — Persistent values associated with the layer by API clients.
- [`GSLayer userDataForKey:`](/Core/GlyphsCore/GSLayer/userDataForKey:) — The user-data value for a key, or `nil` if no value is set.
- [`GSLayer removeUserDataForKey:`](/Core/GlyphsCore/GSLayer/removeUserDataForKey:) — Removes a user-data value.

