---
title: "didChange(_:valuesAt:forKey:)"
framework: objectivec
role: symbol
role_heading: Instance Method
path: "objectivec/nsobject-swift.class/didchange(_:valuesat:forkey:)"
---

# didChange(_:valuesAt:forKey:)

Informs the observed object that the specified change has occurred on the indexes for a specified ordered to-many relationship.

## Declaration

```swift
func didChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String)
```

## Parameters

- `changeKind`: The type of change that was made.
- `indexes`: The indexes of the to-many relationship that were affected by the change.
- `key`: The name of a property that is an ordered to-many relationship.

## Discussion

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

## 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)
- [willChangeValue(forKey:withSetMutation:using:)](objectivec/nsobject-swift.class/willchangevalue(forkey:withsetmutation:using:).md)
- [didChangeValue(forKey:withSetMutation:using:)](objectivec/nsobject-swift.class/didchangevalue(forkey:withsetmutation:using:).md)
