---
title: "didChangeValue(forKey:withSetMutation:using:)"
framework: objectivec
role: symbol
role_heading: Instance Method
path: "objectivec/nsobject-swift.class/didchangevalue(forkey:withsetmutation:using:)"
---

# didChangeValue(forKey:withSetMutation:using:)

Informs the observed object that the specified change was made to a specified unordered to-many relationship.

## Declaration

```swift
func didChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>)
```

## Parameters

- `key`: The name of a property that is an unordered to-many relationship
- `mutationKind`: The type of change that was made.
- `objects`: The objects that were involved in the change (see doc://com.apple.documentation/documentation/Foundation/NSKeyValueSetMutationKind).

## Discussion

Discussion Use this method when implementing key-value observer compliance manually. Calls to this method are always paired with a matching call to willChangeValue(forKey:withSetMutation:using:). Special Considerations You rarely need to override this method in subclasses, but if you do, be sure to call super.

## See Also

### Notifying Observers of Changes

- [willChangeValue(forKey:)](objectivec/nsobject-swift.class/willchangevalue(forkey:).md)
- [didChangeValue(forKey:)](objectivec/nsobject-swift.class/didchangevalue(forkey:).md)
- [willChange(_:valuesAt:forKey:)](objectivec/nsobject-swift.class/willchange(_:valuesat:forkey:).md)
- [didChange(_:valuesAt:forKey:)](objectivec/nsobject-swift.class/didchange(_:valuesat:forkey:).md)
- [willChangeValue(forKey:withSetMutation:using:)](objectivec/nsobject-swift.class/willchangevalue(forkey:withsetmutation:using:).md)
