---
title: "init(recordID:action:)"
framework: cloudkit
role: symbol
role_heading: Initializer
path: "cloudkit/ckrecord/reference/init(recordid:action:)"
---

# init(recordID:action:)

Creates a reference object that points to the record with the specified ID.

## Declaration

```swift
init(recordID: CKRecord.ID, action: CKRecord.ReferenceAction)
```

## Parameters

- `recordID`: The ID of the target record. This method throws an exception if you specify nil for this parameter.
- `action`: The ownership option use between the target record and any records that incorporate this reference object. If you specify the doc://com.apple.cloudkit/documentation/CloudKit/CKRecord/ReferenceAction/deleteSelf option, the record that the recordID parameter references becomes the owner of (or acts as the parent of) any objects that use this reference object. For a list of possible values, see doc://com.apple.cloudkit/documentation/CloudKit/CKRecord/ReferenceAction.

## Return Value

Return Value An initialized reference object that points to the specified record.

## Discussion

Discussion Use this method when you have only the ID of the record for the target of a link. You might use this method if you save only the ID of the record to a local data cache. When you create a reference object for use in a search predicate, the predicate ignores the value in the action parameter. Search predicates use only the ID of the record during their comparison.

## See Also

### Creating a Reference

- [init(record:action:)](cloudkit/ckrecord/reference/init(record:action:).md)
- [CKRecord.Reference.Action](cloudkit/ckrecord/reference/action-swift.typealias.md)
