---
title: "init(key:ascending:comparator:)"
framework: foundation
role: symbol
role_heading: Initializer
path: "foundation/nssortdescriptor/init(key:ascending:comparator:)"
---

# init(key:ascending:comparator:)

Creates a sort descriptor with a specified string key path and ordering, and a comparator block.

## Declaration

```swift
init(key: String?, ascending: Bool, comparator cmptr: @escaping Comparator)
```

## Parameters

- `key`: The property key for performing a comparison. For information about key paths, see https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/KeyValueCoding/index.html#//apple_ref/doc/uid/10000107i.
- `ascending`: doc://com.apple.documentation/documentation/Swift/true if the receiver specifies sorting in ascending order; otherwise, doc://com.apple.documentation/documentation/Swift/false.
- `cmptr`: A comparator block.

## Return Value

Return Value A sort descriptor that initializes with the specified key, ordering, and comparator.

## See Also

### Creating a Sort Descriptor

- [init(key:ascending:)](foundation/nssortdescriptor/init(key:ascending:).md)
- [init(key:ascending:selector:)](foundation/nssortdescriptor/init(key:ascending:selector:).md)
- [init(keyPath:ascending:)](foundation/nssortdescriptor/init(keypath:ascending:).md)
- [init(keyPath:ascending:comparator:)](foundation/nssortdescriptor/init(keypath:ascending:comparator:).md)
- [init(coder:)](foundation/nssortdescriptor/init(coder:).md)
- [init(_:)](foundation/nssortdescriptor/init(_:)-7qf91.md)
