Core NFC

Detect NFC tags and read messages that contain NDEF data.


Your app can read tags to give users more information about their physical environment and the real-world objects in it. For example, your app might give users information about products they find in a store or exhibits they visit in a museum.

Using Core NFC, you can read Near Field Communication (NFC) tags of types 1 through 5 that contain data in the NFC Data Exchange Format (NDEF). To read a tag, your app creates an NFC NDEF reader session and provides a delegate. A running reader session polls for NFC tags and calls the delegate when it finds tags that contain NDEF messages, passing the messages to the delegate. The delegate can read the messages and handle conditions that can cause a session to become invalid.

To enable your app to detect NFC tags, turn on the Near Field Communication Tag Reading capability in your Xcode project. To learn more about adding capabilities to your project, see Add a capability to a target.


Reader Sessions

class NFCNDEFReaderSession

A reader session for detecting NFC Data Exchange Format (NDEF) tags.

protocol NFCReaderSessionProtocol

A general interface for interacting with a reader session.

class NFCReaderSession

The abstract base class that represents a reader session for detecting NFC tags.

NFC Tags

protocol NFCTag

A collection of attributes that represent an NFC or RFID tag.

class NFCTagCommandConfiguration

A set of parameters you use to define the configuration of an NFC tag command.

NDEF Messages

class NFCNDEFMessage

An NFC NDEF message, which consists of an array of records, each of which contains a payload.

class NFCNDEFPayload

A payload in an NFC NDEF message.

enum NFCTypeNameFormat

The Type Name Format field values that specify content types in an NFC NDEF message.


struct NFCReaderError

An error type that indicates problems with reader sessions or tags.

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software