---
title: "dequeueReusableCell(withIdentifier:)"
framework: uikit
role: symbol
role_heading: Instance Method
path: "uikit/uitableview/dequeuereusablecell(withidentifier:)"
---

# dequeueReusableCell(withIdentifier:)

Returns a reusable table-view cell object after locating it by its identifier.

## Declaration

```swift
func dequeueReusableCell(withIdentifier identifier: String) -> UITableViewCell?
```

## Parameters

- `identifier`: A string identifying the cell object to be reused. This parameter must not be nil.

## Return Value

Return Value A UITableViewCell object with the associated identifier, or nil if no such object exists in the reusable-cell queue.

## Discussion

Discussion For performance reasons, a table view’s data source should generally reuse UITableViewCell objects when it assigns cells to rows in its tableView(_:cellForRowAt:) method. A table view maintains a queue or list of UITableViewCell objects that the data source has marked for reuse. Call this method from your data source object when asked to provide a new cell for the table view. This method dequeues an existing cell if one is available or creates a new one using the class or nib file you previously registered. If no cell is available for reuse and you didn’t register a class or nib file, this method returns nil. If you registered a class for the specified identifier and a new cell must be created, this method initializes the cell by calling its init(style:reuseIdentifier:) method. For nib-based cells, this method loads the cell object from the provided nib file. If an existing cell was available for reuse, this method calls the cell’s prepareForReuse() method instead.

## See Also

### Recycling table view cells

- [register(_:forCellReuseIdentifier:)](uikit/uitableview/register(_:forcellreuseidentifier:)-5q6bo.md)
- [register(_:forCellReuseIdentifier:)](uikit/uitableview/register(_:forcellreuseidentifier:)-3l3ct.md)
- [dequeueReusableCell(withIdentifier:for:)](uikit/uitableview/dequeuereusablecell(withidentifier:for:).md)
