<!--
{
  "availability" : [
    "iOS: 13.0.0 -",
    "iPadOS: 13.0.0 -",
    "macCatalyst: 13.1.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CoreNFC",
  "identifier" : "/documentation/CoreNFC/NFCTagReaderSession",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Core NFC"
    ],
    "preciseIdentifier" : "c:objc(cs)NFCTagReaderSession"
  },
  "title" : "NFCTagReaderSession"
}
-->

# NFCTagReaderSession

A reader session for detecting ISO7816, ISO15693, FeliCa, and MIFARE tags.

```
class NFCTagReaderSession
```

## Overview

Use NFCTagReaderSession to interact with one of the tag types listed in [`NFCTagType`](/documentation/CoreNFC/NFCTagType). To use this reader session, you must:

- Include the <doc://com.apple.documentation/documentation/BundleResources/Entitlements/com.apple.developer.nfc.readersession.formats> in your app.
- Provide a non-empty string for the <doc://com.apple.documentation/documentation/BundleResources/Information-Property-List/NFCReaderUsageDescription> key in your app’s information property list file.

To interact with ISO 7816 tags, add the list of the application identifiers supported in your app to the <doc://com.apple.documentation/documentation/BundleResources/Entitlements/com.apple.developer.nfc.readersession.iso7816.select-identifiers> information property list key. If you include the application identifier `D2760000850101`—the identifier for the NDEF application on MIFARE DESFire tags (NFC Forum T4T tag platform)—and the reader session finds a tag matching this identifier, it sends the delegate an [`NFCISO7816Tag`](/documentation/CoreNFC/NFCISO7816Tag) tag object. To get the MIFARE DESFire tag as an [`NFCMiFareTag`](/documentation/CoreNFC/NFCMiFareTag) object, don’t include `D2760000850101` in the application identifier list.

Only one reader session of any type can be active in the system at a time. The system puts additional sessions in a queue and processes them in first-in, first-out (FIFO) order.

> Important:
> `NFCTagReaderSession` doesn’t support selection of payment-related application IDs. In the European Union (EU), you can use ``doc://com.apple.corenfc/documentation/CoreNFC/NFCPaymentTagReaderSession``, as described in that class’s documentation.

## Topics

### Creating a Tag Reader Session

[`init(pollingOption:delegate:queue:)`](/documentation/CoreNFC/NFCTagReaderSession/init(pollingOption:delegate:queue:))

Creates an NFC tag reader session.

[`-  initWithPollingOption:delegate:queue:`](/documentation/CoreNFC/NFCTagReaderSession/initWithPollingOption:delegate:queue:)

Intializes an NFC tag reader session.

[`PollingOption`](/documentation/CoreNFC/NFCTagReaderSession/PollingOption)

Options that determine the type of tags that a reader session should detect during a polling sequence.

[`NFCTagReaderSessionDelegate`](/documentation/CoreNFC/NFCTagReaderSessionDelegate-2joku)

A protocol that an object implements to receive callbacks sent from an NFC tag reader session.

[`NFCTagReaderSessionDelegate`](/documentation/CoreNFC/NFCTagReaderSessionDelegate-5gxiw)

A protocol that an object implements to receive callbacks sent from an NFC tag reader session.

### Connecting to a Tag

[`connect(to:completionHandler:)`](/documentation/CoreNFC/NFCTagReaderSession/connect(to:completionHandler:))

Connects the reader session to a tag and activates that tag.

[`connectedTag`](/documentation/CoreNFC/NFCTagReaderSession/connectedTag-3mlqu)

The tag connected to the reader session.

[`-  connectToTag:completionHandler:`](/documentation/CoreNFC/NFCTagReaderSession/connectToTag:completionHandler:)

Connects the reader session to a tag and activates that tag.

[`connectedTag`](/documentation/CoreNFC/NFCTagReaderSession/connectedTag-1mnjc)

The tag connected to the reader session.

### Restarting the Polling Sequence

[`-  restartPolling`](/documentation/CoreNFC/NFCTagReaderSession/restartPolling())

Restarts the polling sequence so the reader session can discover new tags.

## Relationships

### Conforms To

[`Hashable`](/documentation/Swift/Hashable)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`NFCReaderSessionProtocol`](/documentation/CoreNFC/NFCReaderSessionProtocol)

[`CVarArg`](/documentation/Swift/CVarArg)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`Equatable`](/documentation/Swift/Equatable)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

### Inherits From

[`NFCReaderSession-swift.class`](/documentation/CoreNFC/NFCReaderSession-swift.class)

### Inherited By

[`NFCPaymentTagReaderSession`](/documentation/CoreNFC/NFCPaymentTagReaderSession)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)