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, visit Certificates, Identifiers, and Profiles.


Reader Sessions

class NFCNDEFReaderSession

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

protocol NFCNDEFReaderSessionDelegate

A collection of callbacks that provide status information about the reader session and, when a tag is found, the associated NDEF messages.

protocol NFCReaderSessionProtocol

A general interface for interacting with a reader session.

protocol NFCReaderSessionDelegate

A collection of callbacks that provide information about the status of an NFC 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 payload records.

class NFCNDEFPayload

A payload record in an NFC NDEF message.

enum NFCTypeNameFormat

A set of values for the Type Name Format item, which is part of an NFC NDEF message payload.

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